biplot.ado

来自「是一个经济学管理应用软件 很难找的 但是经济学学生又必须用到」· ADO 代码 · 共 85 行

ADO
85
字号
*! version 1.0.0  25jan2005

program biplot
	version 9.0

	syntax  varlist(numeric min=2)  [if] [in]	///
	[,						///
	   	STD 					///
		MAHalanobis				///
		ALPha(numlist max=1 >=0 <=1)		///
	   	*					///
	] 

// produce properly labeled data matrix M

	tempname M M2 xmean xdiv

	marksample touse
	quietly count if `touse' 
	local mrows = r(N)
	if `mrows' < 2 {
		error 2001
	}

	if "`mahalanobis'" != "" {
		// send sqrt(n-1) through -multanddiv()- option
		local mahalopt "multanddiv(`= sqrt(`mrows'-1)')"

		// mahalanobis implies alpha of zero
		if "`alpha'" == "" {
			local alpha 0
		}
		else if `alpha' != 0 {
			di as error ///
			"nonzero alpha() may not be specified with mahalanobis"
			exit 198
		}
	}
	if "`alpha'" != "" {
		local alpha "alpha(`alpha')"
	}

	forvalues i = 1 / `c(N)' {
		if `touse'[`i'] {
			local rownames `rownames' `i' 
		}	
	}
	local rname Observations	


// center or standardize

	mkmat `varlist' if `touse' , matrix(`M')
	local colnames : colnames `M'
	local col 1
	foreach v of local varlist {
		qui summ `v'
		scalar `xmean' = r(mean)
		if "`std'" != "" { // subtract mean and divide by std dev.
			scalar `xdiv' = r(sd)
		}
		else { // subtract mean (but don't divide by std dev.)
			scalar `xdiv' = 1
		}
		mat `M2' = nullmat(`M2'), ///
			( (`M'[1...,`col'] - J(`mrows',1,`xmean')) ///
			  / `xdiv' )
		local ++col
	}
	mat `M' = `M2'
	matrix rownames `M' = `rownames'
	matrix colnames `M' = `colnames'


// display and plot

	_biplotmat `M' , 			///
		rowopts(name("Observations"))	///
		colopts(name("Variables")) 	///
		`mahalopt' `alpha'		///
		touse(`touse')			///
		`options'
end
exit

⌨️ 快捷键说明

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