📄 twoway__qfit_serset.ado
字号:
*! version 1.0.1 16jan2003
program twoway__qfit_serset
// Creates a serset for a quadratic 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) ///
MOREVARS(string) WEIGHT(string) ///
LEVEL(real `c(level)') STD(string) ]
tempname esthold
_estimates hold `esthold' , nullok restore
tempname x2
qui gen double `x2' = `x'^2
qui regress `y' `x' `x2' [`weight'] if `touse' , `regopts'
tempname touse2
qui gen byte `touse2' = `touse' & e(sample)
capture noisily nobreak {
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'
capture drop `x2'
qui gen double `x2' = `x'^2
}
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -