测算收入流动的程序,跑的时候总是报错,有没有大神能帮我看下是哪的问题,万分感谢!
另外如果谁那有测算的程序包可以发我一份的话就太好了!
程序如下:
version 5.0
set more on
loc varlist "req ex min(2) max(2)"
loc if "opt"
loc in "opt"
loc options "NOTable Format(string) MKVars(string) STDerr Level(real 0.95)"
loc weight "fweight aweight"
parse "`*'"
parse "`varlist'", parse (" ")
loc weight "[`weight'`exp']"
loc var X `1'
loc var Y `2'
loc wvar : word 2 of `exp'
if "`format'" == "" {loc format "%3.2f"}
loc level = 1 - `level'
tempvar wwvar touse
tempname M MR MRS Mtot I J MI
quietly {
preserve
loc ntot=_N
mark `touse' `if' `in' `weight'
markout `touse' `var X' `var Y'
keep if `touse'==1
keep `var X' `var Y' `wvar'
loc nobs=_N
/* The Transition/Mobility Matrix .... */
tab `var X' `var Y' `weight', matcell(`M') matrow(`I')
loc q = rowsof(`I')
matsum `M' , r(`MRS')
matsum `M' , a(`Mtot')
mat `MR' = diag(`MRS')
mat `MR' = inv(`MR')
mat `M' = `M''
mat `M' = `M' * `MR'
mat `M' = `M''
if "`notable'"=="" {
loc rlab : value label `var X'
loc r ""
loc i 1
while `i' <= `q' {
loc thisr = `I'[`i',1]
if "`rlab'" ~= "" {
loc x : label `rlab' `thisr'
loc x : word 1 of `x'
loc r "`r' `x'"
}
else {loc r "`r' `thisr'"}
loc i = `i' + 1
}
mat rownames `M' = `r'
mat colnames `M' = `r'
noi di
noi di in gr _col(5) "Transition Matrix from " /*
*/ "`var X' (rows) to `var Y' (columns)"
noi mat list `M' , noheader format(`format') nohalf
}