⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 szroeter.ado

📁 是一个经济学管理应用软件 很难找的 但是经济学学生又必须用到
💻 ADO
字号:
*! version 2.2.4  04oct2002
program define szroeter, rclass
	version 8

	if "`e(cmd)'" != "regress" {
		di as err "szroeter is only possible after regress"
		exit 301
	}
	if "`e(wtype)'" != "" {
		di as err "szroeter does not allow weights"
		exit 101
	}
	if "`e(clustvar)'" != "" {
		di as err "szroeter does not allow cluster()"
		exit 498
	}

	syntax [varlist(default=none numeric)] [, Rhs Mtest2(passthru) ]

	// check that mtest has valid value
	if `"`mtest2'"' != "" {
		_mtest syntax , `mtest2'
		local mtmethod `r(method)'
	}
	else 	local mtmethod noadjust

	if "`rhs'" != "" {
		tempname b
		mat `b' = e(b)
		local xvar : colnames `b'
		local xvar : subinstr local xvar "_cons" "", word
		local varlist `varlist' `xvar'
	}
	local nvar : word count `varlist'
	if `nvar' == 0 {
		di as txt "(no test to perform)"
		exit 0
	}
	else if `nvar' == 1 {
		local vlist `varlist'
		local mtmethod
	}
	else local vlist variable


	// compute test statistics
	// -----------------------

	tempname test
	mat `test' = J(`nvar',3,0)
	mat colnames `test' = chi2 df p
	mat rownames `test' = `varlist'

	tokenize `varlist'
	forvalues i = 1/`nvar' {
		Szroeter ``i''
		mat `test'[`i',1] = r(Q)
		mat `test'[`i',2] = 1
		mat `test'[`i',3] = r(p)
	}

	if "`mtmethod'" != "" {
		_mtest adjust `test' , mtest(`mtmethod') pindex(3) append
		mat `test' = r(result)
		local indexp 4
	}
	else	local indexp 3


	// display test statistics
	// ------------------------

	local vartxt = cond(`nvar'==1,"`varlist'","variable")

	di as txt _n "Szroeter's test for homoskedasticity" _n
	di as txt _col(5) "Ho: variance constant"
	di as txt _col(5) "Ha: variance monotonic in `vartxt'" _n

	if `nvar' == 1 {
		di as txt _col(10) "chi2(1)"     _col(23) "=" ///
		   as res %9.2f `test'[1,1]
		di as txt _col(10) "Prob > chi2" _col(23) "=" ///
		   as res %9.4f `test'[1,3]
	}
	else {
		di as txt "{hline 13}{c TT}{hline 25}"
		di as txt "    Variable {c |}      chi2   df      p "
		di as txt "{hline 13}{c +}{hline 25}"

		forvalues i = 1/`nvar' {
			local vn = abbrev("``i''",12)
			di as txt "{ralign 12:`vn'} {c |} "       ///
			   as res _col(16)  %9.2f  `test'[`i',1]  ///
			          _col(24)  %5.0f  `test'[`i',2]  ///
			          _col(33)  %6.4f  `test'[`i',`indexp'] " #"
		}
		di as txt "{hline 13}{c BT}{hline 25}"

		_mtest footer 39 "`mtmethod'" "#"
	}

	// return values
	// -------------

	if `nvar' == 1 {
		return scalar chi2 = `test'[1,1]
		return scalar df   = `test'[1,2]
		return scalar p    = `test'[1,3]
	}

	return matrix mtest    `test'
	return local  mtmethod `mtmethod'
end


/* Szroeter varname

   returns in r(Q) the test statistic
              r(p) the p-value of Q under Ho
*/
program define Szroeter , rclass
	args var

	tempname h mh n vh
	tempvar ht res touse

	quietly {
		gen byte `touse' = e(sample)
		markout `touse' `var'
		egen `ht' = rank(`var') if `touse'
		summ `ht' if `touse'
		scalar `n'  = r(N)
		scalar `mh' = r(mean)
		scalar `vh' = r(Var)

		predict `res', res
		summ `ht' [aw=`res'^2] if `touse', meanonly
		scalar `h' = r(mean)

		ret scalar Q = (`n'^2 / (2*(`n'-1))) * (`h'-`mh')^2 / `vh'
		ret scalar p = chi2tail(1, return(Q))
	}
end
exit

szroeter's heteroskedasticity test with King's weights (Judge et al 1985: 450-2)

help for szroeter is contained in -hettest.hlp-

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -