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

📄 pkcross.ado

📁 是一个经济学管理应用软件 很难找的 但是经济学学生又必须用到
💻 ADO
📖 第 1 页 / 共 2 页
字号:
		qui anova `outcome' `period' `treat' `period'*`treat' /*
			*/ if `touse'
		di
		TopLine "Analysis of variance (ANOVA) for a 2x2 crossover study"`ptl'

		qui test `treat'
		Line "Treatment effect" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F)) `ptl'

		qui test `period'
		Line "Period effect" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F)) `ptl'

		qui test `period'*`treat'
		Line "Treatment * Period" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F)) `ptl'

		Line "Residuals" r(rss) r(df_r) r(rss)/r(df_r) `ptl'
		DivLine 

		Line "Total" e(rss)+e(mss) e(df_m)+e(df_r) `ptl'
	}
	else {
		di
                TopLine "Analysis of variance (ANOVA) for a 2x2 crossover study"
		qui anova `outcome' `treat' if `touse'
                qui test `treat'
                Line "Treatment effect" r(ss) r(df) r(ss)/r(df) /*
                        */ r(F) fprob(r(df),r(df_r),r(F))

		qui anova `outcome' `treat' `period' if `touse'
                qui test `period'
		Line "Period effect" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F))

		qui anova `outcome' `treat' `period' `period'*`treat'
                qui test `period'*`treat'
                Line "Treatment * Period" r(ss) r(df) r(ss)/r(df) /*
                        */ r(F) fprob(r(df),r(df_r),r(F))
                Line "Residuals" r(rss) r(df_r) r(rss)/r(df_r)
                DivLine
	}

end


program define _2x2_p3, rclass
        version 6, missing
        syntax varlist(numeric min=5 max=6) [if] [in] [, SEquential]
	marksample touse
	tokenize `varlist'
        local id = "`1'"
        local seq = "`2'"
        local outcome = "`3'"
        local period = "`4'"
        local treat = "`5'"
        local carry = "`6'"



	if "`sequential'" == "" {
		local ptl ptl
	}
	else {
		local ptl = ""
	}

	if "`sequential'" == "" {
		qui anova `outcome' `seq'/`id'|`seq' `treat' `period' /*
			*/ if `touse', `sequential' 
		di
		TopLine "Analysis of variance (ANOVA) for a 2x2 crossover study" `ptl'
		HdrLine "Intersubjects"
		qui test `seq'/`id'|`seq'
		Line "Sequence effect" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F)) `ptl'
		qui test `id'|`seq'
		Line "Residuals" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F)) `ptl'
		DivLine 
		HdrLine "Intrasubjects"
		qui test `treat'
		Line "Treatment effect" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F)) `ptl'
		qui test `period'
		Line "Period effect" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F)) `ptl'
		Line "Residuals" r(rss) r(df_r) r(rss)/r(df_r) `ptl'
		DivLine
		Line "Total" e(rss)+e(mss) e(df_m)+e(df_r) `ptl'
/*		qui anova `outcome' `seq'/`id'|`seq' `treat' `period' /*
			*/ if `touse', `sequential' 
*/	}
	else {

		di
		TopLine "Analysis of variance (ANOVA) for a 2x2 crossover study"
		HdrLine "Intersubjects"
		qui anova `outcome' `seq'/`id'|`seq' /*
			*/ if `touse', `sequential' 
		qui test `seq'/`id'|`seq'
		Line "Sequence effect" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F))
		qui test `id'|`seq'
		Line "Residuals" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F))
		DivLine 
		HdrLine "Intrasubjects"
		qui anova `outcome' `seq'/`id'|`seq' `treat'  /*
			*/ if `touse', `sequential' 
		qui test `treat'
		Line "Treatment effect" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F))
		qui anova `outcome' `seq'/`id'|`seq' `treat' `period' /*
			*/ if `touse', `sequential' 
		qui test `period'
		Line "Period effect" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F))
		Line "Residuals" r(rss) r(df_r) r(rss)/r(df_r)
		DivLine
		Line "Total" e(rss)+e(mss) e(df_m)+e(df_r)
	}

end
 

program define _2x2_p4, rclass
        version 6, missing
        syntax varlist(numeric min=5 max=6) [if] [in] [, SEquential]
	marksample touse
	tokenize `varlist'
        local id = "`1'"
        local seq = "`2'"
        local outcome = "`3'"
        local period = "`4'"
        local treat = "`5'"
        local carry = "`6'"

	if "`sequential'" == "" {
		local ptl ptl
	}
	else {
		local ptl = ""
	}

	if "`sequential'" == "" {
		qui anova `outcome' `seq'/`id'|`seq' `treat' `treat'*`seq' /*
			*/ if `touse', `sequential'
		di
		TopLine "Analysis of variance (ANOVA) for a 2x2 crossover study" `ptl'
		qui test `treat'                        
		Line "Treatment effect" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F)) `ptl'
		qui test `seq'/`id'|`seq'               
		Line "Sequence effect" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F)) `ptl'
		qui test `id'|`seq'
		Line "Id|Sequence" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F)) `ptl'
		qui test `treat'*`seq'                  
		Line "Treatment * Sequence" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F)) `ptl'
		Line "Residuals" r(rss) r(df_r) r(rss)/r(df_r)  `ptl'
		DivLine
		Line "Total" e(rss)+e(mss) e(df_m)+e(df_r) `ptl'
	}
	else {
                di
                TopLine "Analysis of variance (ANOVA) for a 2x2 crossover study"
                qui anova `outcome' `treat' /*
                        */ if `touse', `sequential'
                qui test `treat'
                Line "Treatment effect" r(ss) r(df) r(ss)/r(df) /*
                        */ r(F) fprob(r(df),r(df_r),r(F))
                qui anova `outcome' `treat' `seq'/`id'|`seq' /*
                        */ if `touse', `sequential'
                qui test `seq'/`id'|`seq'       
                Line "Sequence effect" r(ss) r(df) r(ss)/r(df) /*
                        */ r(F) fprob(r(df),r(df_r),r(F))
		qui test `id'|`seq'
		Line "Id|Sequence" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F))
                qui anova `outcome' `treat' `seq'/`id'|`seq' `treat'*`seq' /*
                        */ if `touse', `sequential'
                qui test `treat'*`seq'
                Line "Treatment * Sequence" r(ss) r(df) r(ss)/r(df) /*
                        */ r(F) fprob(r(df),r(df_r),r(F))
                Line "Residuals" r(rss) r(df_r) r(rss)/r(df_r)
                DivLine
                Line "Total" e(rss)+e(mss) e(df_m)+e(df_r)
	}
end


program define Cx, rclass
        version 6, missing
        syntax varlist(numeric min=5 max=6) [if] [in] [, SEquential]
	marksample touse 

	tokenize `varlist'
        local id = "`1'"
        local seq = "`2'"
        local outcome = "`3'"
        local period = "`4'"
        local treat = "`5'"
        local carry = "`6'"


	if "`sequential'" == "" {
		local ptl ptl
	}
	else {
		local ptl = ""
	}
	if "`sequential'" == "" {
	       	qui anova `outcome' `seq'/`id'|`seq' `period' `treat' /*
			*/ `carry' if `touse'
		
		TopLine "Analysis of variance (ANOVA) for a crossover study" `ptl'

		HdrLine Intersubjects
	
		qui test `seq'/`id'|`seq'
		Line "Sequence effect " r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F)) `ptl'

		qui test `id'|`seq'
		Line "Residuals" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F)) `ptl'

		DivLine
		HdrLine Intrasubjects

		qui test `treat'
		Line "Treatment effect" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F)) `ptl'

		if "`carry'" != "" {
			qui test `carry'
			Line "Carryover effect" r(ss) r(df) r(ss)/r(df) /*
				*/ r(F) fprob(r(df),r(df_r),r(F)) `ptl'
		}

		qui test `period'
		Line "Period effect" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F)) `ptl'

		Line "Residuals" r(rss) r(df_r) r(rss)/r(df_r) `ptl'

		DivLine
		Line "Total" e(rss)+e(mss) e(df_m)+e(df_r) `ptl'
	
	}
	else {
		di
		TopLine "Analysis of variance (ANOVA) for a crossover study"

		HdrLine "Intersubjects"

		qui anova `outcome' `seq'/`id'|`seq' if `touse'
		qui test `seq'/`id'|`seq'
		Line "Sequence effect" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F))


		qui anova `outcome' `seq' `id'|`seq' if `touse'
		qui test `id'|`seq'
		Line "Residuals" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F))

		DivLine
		HdrLine "Intrasubjects"

		qui anova `outcome' `seq'/`id'|`seq' `period' if `touse'
		qui test `period'
		Line "Period effect" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F))

		qui anova `outcome' `seq'/`id'|`seq' `period' `treat' /*
			*/ if `touse'
		qui test `treat'
		Line "Treatment effect" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F))

		if "`carry'" != "" {
			qui anova `outcome' `seq'/`id'|`seq' `period' /*
				*/ `treat' `carry' if `touse'
			qui test `carry'
		}
		Line "Carryover effect" r(ss) r(df) r(ss)/r(df) /*
			*/ r(F) fprob(r(df),r(df_r),r(F))

		Line "Residuals" r(rss) r(df_r) r(rss)/r(df_r)

		DivLine

		Line "Total" e(rss)+e(mss) e(df_m)+e(df_r)
	}
		
end

program define ChkVar
	args var
	unab vname : `var'
	if `"`vname'"' != `"`var'"' {
		di as err "no variable named " as res `"`var'"' /*
			*/ as err " in the data"
		exit 198
	}
end

exit

⌨️ 快捷键说明

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