Stata中tsline图添加95%置信区间报错(r(198))求助
Stata绘制标准化残差时间序列图±1.96置信区间报错解决
报错原因
你的rcap命令存在两处语法错误:
rcap要求前两个参数为变量(或可识别的变量表达式),直接输入常数-1.96/1.96会被Stata误判为无效变量名,触发"invalid name r(198)"错误。- 参数顺序不符合
rcap语法规范,正确顺序应为rcap 下限变量 上限变量 横轴变量。
修正后的代码
方案1:生成常数变量(易读性强)
regress CSAD Market_IndexABS MISq Lag1_CSAD Lag2_CSAD Lag3_CSAD predict resid_std, rstandard // 生成±1.96的常数变量 gen lower_ci = -1.96 gen upper_ci = 1.96 // 绘制时间序列图+置信区间竖线+水平参考线 twoway (tsline resid_std, title("Standardized Residuals Plot")) /// (rcap lower_ci upper_ci time, lcolor(red)) /// (scatteri -1.96 `=min(time)' -1.96 `=max(time)', lcolor(black) lwidth(medium) lpattern(dash)) /// (scatteri 1.96 `=min(time)' 1.96 `=max(time)', lcolor(black) lwidth(medium) lpattern(dash))
方案2:直接使用表达式(更简洁)
无需额外生成变量,通过表达式构造常数序列:
regress CSAD Market_IndexABS MISq Lag1_CSAD Lag2_CSAD Lag3_CSAD predict resid_std, rstandard twoway (tsline resid_std, title("Standardized Residuals Plot")) /// (rcap (-1.96)*_n (1.96)*_n time, lcolor(red)) /// (scatteri -1.96 `=min(time)' -1.96 `=max(time)', lcolor(black) lwidth(medium) lpattern(dash)) /// (scatteri 1.96 `=min(time)' 1.96 `=max(time)', lcolor(black) lwidth(medium) lpattern(dash))
代码说明
rcap命令:在每个时间点绘制从-1.96到1.96的红色竖线,对应每个残差点的置信区间范围。scatteri命令:绘制两条黑色虚线水平参考线,明确标注95%置信区间的临界值。///用于换行,保持代码整洁。
内容的提问来源于stack exchange,提问作者George Robbin
相关产品推荐
相关产品推荐

