📄 tobit.ado
字号:
*! version 1.1.5 04feb2005
program define tobit, sortpreserve byable(onecall) prop(swml)
if _by() {
local BY `"by `_byvars'`_byrc0':"'
}
`BY' _vce_parserun tobit : `0'
if "`s(exit)'" != "" {
exit
}
if replay() {
if "`e(cmd)'" != "tobit" {
error 301
}
if _by() {
error 190
}
if _caller() < 9 {
_tobit `0'
}
else Display `0'
exit
}
`BY' Estimate `0'
end
program Estimate, byable(recall)
version 9, missing
local version : di "version " string(_caller()) ", missing :"
syntax varlist [aw fw] [if] [in] ///
[, Level(cilevel) NOCOEF * ]
if "`weight'" != "" {
local wt [`weight'`exp']
}
marksample touse
capture noisily `version' _tobit `varlist' `wt' if `touse', ///
nocoef `options'
local rc = c(rc)
if `rc' & `rc' != 430 {
exit `rc'
}
if "`nocoef'" == "" {
if _caller() < 9 {
_tobit, level(`level')
}
else {
NewStripes `rc'
Display, level(`level')
}
}
exit `rc'
end
program Display
version 9
syntax [, Level(cilevel) ]
_coef_table_header
di
_coef_table, level(`level') first diparm(sigma, noprob)
_prefix_footnote
end
program NewStripes, eclass
version 9
args rc
tempname b V
matrix `b' = e(b)
matrix `V' = e(V)
local depvar `e(depvar)'
local colna : colna `b'
local len : length local colna
local colna : piece 1 `=`len'-3' of "`colna'"
local colna `"`colna' _cons"'
local dim = colsof(`b')
forval i = 1/`=`dim'-1' {
local coleq `coleq' model
}
local coleq `coleq' sigma
matrix colname `b' = `colna'
matrix coleq `b' = `coleq'
matrix colname `V' = `colna'
matrix coleq `V' = `coleq'
matrix rowname `V' = `colna'
matrix roweq `V' = `coleq'
_e2r
tempvar touse
gen byte `touse' = e(sample)
ereturn post `b' `V', esample(`touse') depname(`depvar')
_r2e
ereturn local title "Tobit regression"
ereturn scalar k_aux = 1
ereturn scalar version = 2
if "`e(wtype)'" != "" {
local wt [`e(wtype)'`e(wexp)']
}
if !missing(e(llopt)) {
sum `depvar' `wt' if `depvar' <= e(llopt) & e(sample), mean
ereturn scalar N_lc = r(N)
}
else ereturn scalar N_lc = 0
sum `depvar' `wt' if `depvar' >= e(ulopt) & e(sample), mean
ereturn scalar N_rc = r(N)
ereturn scalar N_unc = e(N) - e(N_lc) - e(N_rc)
ereturn local footnote censobs_table ///
e(N_unc) e(N_lc) e(N_rc) "" e(llopt) e(ulopt)
ereturn scalar chi2 = e(F)
ereturn local chi2type LR
ereturn local F
if `rc' == 430 {
ereturn scalar converged = 0
}
else ereturn scalar converged = 1
end
program CheckCollinear
syntax varlist
gettoken depvar xvars : varlist
local coef : colna e(b)
local cl : list xvars - coef
if "`cl'" != "" {
di as txt "note: `cl' dropped due to collinearity"
}
end
exit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -