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

📄 svyologit.ado

📁 是一个经济学管理应用软件 很难找的 但是经济学学生又必须用到
💻 ADO
字号:
*! version 3.0.1  29sep2004
program define svyologit
	version 8, missing

	args flag query doit score

	if "`flag'"!="0" {
		if _caller() < 8 {
			svy_est_7 svyologit `0'
		}
		else {
			svy_est svyologit `0'
		}
		exit
	}
	if "`query'"=="syntax" {
		Syntax
		exit
	}
	if "`query'"=="how_many_scores" {
		HowMany
		exit
	}
	if "`query'"=="save" {
		Save
		exit
	}
	if "`query'"=="scores" {
		if "$S_VYindv"=="" { /* no first equation */
			drop `score'
		}
		matrix $S_VYtmp1 = e(cat) /* save category matrix */
		Relabel /* relabel b and V with equation names */
		exit
	}
	if "`query'"=="footnote" { /* do nothing */
		exit
	}

	di in red "0 invalid name"
	exit 198
end

program define Syntax, sclass
	sret clear
	sret local title    "Survey ordered logistic regression"
	sret local cmd      "ologit"
	sret local k_depvar "1"
	sret local okopts   "OFFset(varname numeric)"
				   /* additional allowed options */
	sret local mlopts   "yes"
end

program define HowMany, rclass
	qui tab $S_VYdepv if $S_VYsub
	global S_VYncat = r(r)     /* # of categories */
	ret scalar k_scores = r(r) /* # of score indexes */
	ret scalar cmdcando = 1    /* ologit can compute them */
end

program define Save, eclass
	eret local predict "ologit_p"
	eret scalar k_cat = $S_VYncat    /* # of categories */
	eret scalar k_aux = e(k_cat) - 1 /* # of auxiliary parameters */
	eret scalar k_eq  = e(k_aux) + (e(df_m)!=0)
					/* # of equations */
	eret matrix cat $S_VYtmp1        /* categories */

	capture matrix list e(V_msp)
	if _rc == 0 {
		tempname V Vmsp
		matrix `V' = e(V)
		matrix `Vmsp' = e(V_msp)
		_cpmatnm `V', square(`Vmsp' S_E_Vmsp)
		eret matrix V_msp `Vmsp'
	}

/* Double save. */

	global S_E_ncat = e(k_cat)
end

program define Relabel /* relabel `b' and `V' */
	tempname cuts

	local dim = colsof($S_VYb)
	local cut1 = colnumb($S_VYb,"_cut1")
	matrix `cuts' = $S_VYb[1,`cut1'...]
	local ncut = colsof(`cuts')
	local mdf = `dim' - `ncut'

	local i 1
	while `i' <= `ncut' {
		local names "`names' cut`i'"
		local i = `i' + 1
	}

	matrix coleq    `cuts' = `names'
	matrix colnames `cuts' = _cons

	if `mdf' > 0 {
		matrix $S_VYb = $S_VYb[1,1..`mdf']
		matrix coleq $S_VYb = $S_VYdepv
		matrix $S_VYb = $S_VYb , `cuts'
	}
	else	matrix $S_VYb = `cuts'

	local names : colnames($S_VYb)
	matrix colnames $S_VYV = `names'
	matrix rownames $S_VYV = `names'
	local names : coleq($S_VYb)
	matrix coleq $S_VYV = `names'
	matrix roweq $S_VYV = `names'
end

⌨️ 快捷键说明

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