📄 twoway__lfit_serset.ado
字号:
*! version 1.0.1 16jan2003
program twoway__lfit_serset
// Creates a serset for a fit view. Runs from an immediate log.
syntax , SERSETNAME(string) X(string) Y(string) TOUSE(string) ///
[ PREDOPTS(string) REGOPTS(string) ATOBS(integer 0) ///
POINTS(integer 2) MIN(string) MAX(string) ///
XTRANS(string) MOREVARS(string) WEIGHT(string) ///
LEVEL(real `c(level)') STD(string) ]
tempname esthold
_estimates hold `esthold' , nullok restore
if `"`xtrans'"' != `""' {
tempvar regx
VarTrans `x' `regx' `"`xtrans'"'
}
else {
local regx `x'
}
qui regress `y' `regx' [`weight'] if `touse' , `regopts'
tempname touse2
gen byte `touse2' = `touse' & e(sample)
capture noisily {
if ! `atobs' {
tempvar holdx
local realN `c(N)'
preserve , changed
_gs_x_create , points(`points') x(`x') ///
min(`"`min'"') max(`"`max'"') ///
holdx(`holdx') touse(`touse2')
local touse2 _n <= `points'
if `"`xtrans'"' != `""' {
capture drop `regx'
VarTrans `x' `regx' `"`xtrans'"'
}
}
tempvar yhat
qui predict `yhat' if `touse2' , `predopts'
local ylist `yhat'
if "`std'" != "" {
tempvar se lcl ucl
qui predict `se' if `touse2' , `std'
qui gen `lcl' = `yhat' - ///
invttail(e(df_r), ((100-`level')/200)) * `se'
qui gen `ucl' = `yhat' + ///
invttail(e(df_r), ((100-`level')/200)) * `se'
label variable `lcl' "`level'% CI"
label variable `ucl' "`level'% CI"
local ylist `ylist' `lcl' `ucl'
}
.`sersetname' = .serset.new `ylist' `x' `morevars' ///
if `touse2', `.omitmethod' `options' nocount
if "`std'" != "" {
.`sersetname'.sers[2].name = "lower_limit"
.`sersetname'.sers[3].name = "upper_limit"
}
}
local rc = _rc
if ! 0`atobs' {
capture {
if `realN' < c(N) {
qui drop in `=`realN'+1'/l
}
qui drop `x' `ylist'
rename `holdx' `x'
restore
}
local rc = cond(`rc' , `rc' , _rc)
}
if `rc' {
exit `rc'
}
.`sersetname'.sort `x'
.`sersetname'.sers[1].name = "`y'"
end
program VarTrans
args v vtmp trans
local trans : subinstr local trans "X" "`v'" , all
qui gen double `vtmp' = `trans'
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -