You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stata中tsline图添加95%置信区间报错(r(198))求助

Stata绘制标准化残差时间序列图±1.96置信区间报错解决

报错原因

你的rcap命令存在两处语法错误:

  1. rcap要求前两个参数为变量(或可识别的变量表达式),直接输入常数-1.96/1.96会被Stata误判为无效变量名,触发"invalid name r(198)"错误。
  2. 参数顺序不符合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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 11:57:44