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

📄 glmpred.ado

📁 是一个经济学管理应用软件 很难找的 但是经济学学生又必须用到
💻 ADO
字号:
*! version 4.1.0  18nov1998 updated 09oct2000
program define glmpred
	version 4.0

	if !("`e(cmd)'"=="glm" & "`e(predict)'"=="glm_p") { 
		error 301
	}

	tempvar new
	local varlist "new max(1) min(1)"
	local options "All Deviance Mu Pearson Stdp XB"
	nobreak {
		parse "`*'"
		rename `varlist' `new'
	}

	tempvar eta MU V dresq

	local nopt = ("`devianc'" != "") /*
			*/ + ("`mu'" != "" ) + ("`xb'" != "") /*
			*/ + ("`pearson'" != "") + ("`stdp'" != "")

	if `nopt'>1 { error 198 }
	if `nopt' == 0 { 
		local mu "mu"
	}

	if "`all'" == "" { 
		local all "if e(sample)"
	}
	else	local all


	local k "`e(k)'"
	local delta "`e(delta)'"

	quietly { 

				/* Calc offset-adjusted linear predictor */

		_predict double `eta'
		if "`e(offset)'"!="" { 
			replace `eta' = `eta'+ `e(offset)'
		}

		if "`xb'" != "" {
			label var `new' "Linear predictor"
			replace `new'=`eta' `all'
			rename `new' `varlist'
			exit
		}

					/* stdp 		*/
		if "`stdp'" != "" {
			_predict double `MU', stdp
			replace `new' = `MU' `all'
			label var `new' "S.E. of linear prediction"
			rename `new' `varlist'
			exit
		}

					/* Calc predicted mean	*/
		gen double `MU'=.
		_crcglil `eta' `MU' `e(power)' `e(m)' `k' `e(bernoul)'
		if "`mu'" != "" {
			replace `new'=`MU' `all'
			label var `new' "Predicted mean of `e(depvar)'"
			rename `new' `varlist'
			exit
		}


		local y `e(depvar)'

/*
	Calc (unstandardized, scaled) deviance residual.
*/
		if "`devianc'"!="" {
			gen double `dresq' = 0
				/* note, wt purposefully set to        1   */
			_crcgldv `y' `e(family)' `e(bernoul)' `e(m)' `k' `MU' 1 `dresq'
			replace `new'=sign(`y'-`MU')*sqrt(`dresq') `all'
			lab var `new' "Deviance residual"
			rename `new' `varlist'
			exit
		}

		if "`pearson'" != "" {
			pearson `V' `MU'
			replace `new' = (`y'-`MU')/sqrt(`V') `all'
			label var `new' "Pearson residual"
			rename `new' `varlist'
			exit
		}
	}
end


program define pearson /* V mu */
	version 4.0

	local V "`1'"
	local mu "`2'"

	if "`e(family)'"=="bin" {
		gen double `V' = `mu'*(1-`mu'/`e(m)')
	}
	else if "`e(family)'"=="gam" {
		gen double `V' = `mu'^2
	}
	else if "`e(family)'"=="gau" {
		gen double `V' = 1
	}
	else if "`e(family)'"=="ivg" {
		gen double `V' = `mu'^3
	}
	else if "`e(family)'"=="nb" {
		gen double `V' = (`mu'+`e(k)'*`mu'^2)
	}
	else if "`e(family)'"=="poi" {
		gen double `V' = `mu'
	}
end

⌨️ 快捷键说明

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