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 + -
显示快捷键?