以下是引用vincent829在2009-3-2 20:51:00的发言:下面是个program,只需注意加粗部分
program define skewt, rclass
version 10.1
syntax varlist (numeric)[if] [in], [bs saving(string) size(integer 4) reps(integer 1000) replace *]
marksample touse /*这个处理会促使每个变量中的观察值相同*/
foreach var of varlist `varlist' {
capture confirm numeric variable `var'
if _rc==0 {
qui sum `var' , detail /*去掉 if `touse'*/
di ""
di in gr _col(5) "N coefficient = `=sqrt(r(N))'"
qui sum `var' if `touse', detail
di in gr _col(5) "`var'- stats from the sample"
di ""
di in gr _col(5) "S-coefficient = `=r(mean)/r(sd)'"
di in gr _col(5) "G-coefficient = `r(skewness)'"
di in gr _col(5) "Sample mean = `r(mean)'"
di ""
local ratio = (`=sqrt(r(N))')*((`=r(mean)/r(sd)') + ((1/3) * (`r(skewness)') * ((`=r(mean)/r(sd)')^2)) + ((1/(6*((`=sqrt(r(N))')^2)))* (`r(skewness)')))
return scalar ratio_`var'=`ratio'
}
else {
di as input "`var'" as text " is not a numeric variable skewness adjusted t-statistic cannot be calculated."
}
if "`bs'" == "bs" {
if "`saving'" != "" {
local saving `saving'_`var'
}
bootstrap r(ratio_`var'), saving("`saving'", `replace') reps(`reps') size(`=int(_N/`size')') `options': skewt `var'
}
}
end
在上述命令中,加粗的部分不理想,因为只能返回no of observation,不管missing还是nonmissing,我想返回no of nonmissing observation,怎么达到,谢谢
我想上面的修改应该符合你的要求了。

[em05]
[此贴子已经被作者于2009-3-3 8:38:38编辑过]