【发布时间】:2023-03-19 07:01:04
【问题描述】:
所以我有两个模型,我想计算这些统计数据。在Stata中是否有任何软件包可以计算它们?
如果我没记错的话。 $$ R^2_{预测} = 1 - \frac{RESET}{ESS} 美元。
【问题讨论】:
标签: stata prediction
所以我有两个模型,我想计算这些统计数据。在Stata中是否有任何软件包可以计算它们?
如果我没记错的话。 $$ R^2_{预测} = 1 - \frac{RESET}{ESS} 美元。
【问题讨论】:
标签: stata prediction
clear all
program define press, rclass
syntax varlist(fv) [if] [in] ///
[fweight aweight pweight iweight] , ///
[nodots]
gettoken y x : varlist
marksample touse
preserve
quietly keep if `touse'
if "`weight'" != "" {
local wgt "[`weight'`exp']"
}
tempvar pred temp prs
quietly gen double `pred' = .
if "`dots'" == "" _dots 0, title(Jackknife replications) reps(`=_N')
forvalues i = 1/`=_N' {
capture {
reg `y' `x' `wgt' if _n != `i'
predict double `temp'
replace `pred' = `temp' in `i'
drop `temp'
}
if "`dots'" == "" _dots `i' `=_rc > 0'
}
quietly gen double `prs' = (`y' - `pred')^2
sum `prs', meanonly
if "`dots'" == "" di _n _n
di as txt "The predicted residual sum of squares is " as result r(sum)
return scalar press = r(sum)
restore
end
sysuse auto
press price mpg i.foreign
【讨论】:
press price mpg i.foreign invalid syntax r(197);
set traced 1 和set trace on 并检查输出以查找错误。这给了你很多输出,然后你开始检查错误消息附近的内容。
对于多元线性回归,PRESS 也可以计算为 r(i)^2/(1-h(i))^2 的总和,其中 r(i) 是残差,h(i) 是帽子值(hat matrix 的对角线条目,即 X*(X'*X)^-1*X',其中 X 是design matrix。
在 Stata 中,在 regress 之后调用以下命令 press,不带参数:
prog def press, rclass
tempvar r h p
predict `r', r
predict `h', h
gen `p'=(`r'/(1-`h'))^2
sum `p', mean
di in gr "PRESS = " in ye r(sum)
ret sca press=r(sum)
end
【讨论】: