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

如何在Stata中计算预测值落在TE 95%置信区间的占比?

问题解决:Stata计算预测值落在95%置信区间的占比

你的代码核心问题是错误使用了sum命令的语法:sum没有gen选项,直接写sum ... gen ...会导致Stata无法正确执行,生成的变量自然为空。另外r(Obs)是Stata返回的标量(单值),需要先正确存储再使用。以下是两种简便的解决方法:

方法一:用标量存储观测数后计算

// 获取总观测数并存为标量
sum `var'_prediction
scalar totalobs = r(Obs)

// 获取落在95%CI内的观测数(用inrange简化条件判断)
sum `var'_prediction if inrange(`var'_prediction, `var'_TE - 1.96*`var'_se, `var'_TE + 1.96*`var'_se)
scalar obsin95 = r(Obs)

// 生成占比变量(所有行均为同一占比值)
gen `var'percentinCI = obsin95 / totalobs

方法二:用哑变量直接计算比例(更直观)

通过生成标识是否在区间内的哑变量,利用mean命令直接得到比例(0-1变量的均值即为占比):

// 生成哑变量:1=在95%CI内,0=不在
gen `var'inCI = inrange(`var'_prediction, `var'_TE - 1.96*`var'_se, `var'_TE + 1.96*`var'_se)

// 计算占比,结果会存在r(mean)中,同时生成变量
mean `var'inCI
gen `var'percentinCI = r(mean)

如果不需要保留中间变量,可使用临时变量节省内存:

tempvar inCI
gen `inCI' = inrange(`var'_prediction, `var'_TE - 1.96*`var'_se, `var'_TE + 1.96*`var'_se)
mean `inCI'
scalar percent_in_CI = r(mean)
// 直接调用标量percent_in_CI即可,无需生成永久变量

内容的提问来源于stack exchange,提问作者ConfusedStudent

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:57:02