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

📄 _mds_display_classical.ado

📁 是一个经济学管理应用软件 很难找的 但是经济学学生又必须用到
💻 ADO
字号:
*! version 1.0.0  24mar2005
program _mds_display_classical
	version 8

	syntax [, CONfig Neigen(str) noPLot ]

	if !inlist("`neigen'", "", "max") {
		confirm integer number `neigen'
		if `neigen' < 0 {
			dis as err "invalid neigen()"
			exit 198
		}
	}
	else if "`neigen'" == "max" {
		local neigen = e(np)
	}
	else {
		local neigen = 10
	}

// header

	dis _n as txt "Classical metric multidimensional scaling"

	_mds_dataheader

	if `e(addcons)' > 0 {
		dis _col(5) as txt "Const. added to D^2  = " ///
		            as res %9.0g  e(addcons) _c
	}
	dis _col(47) as txt "Number of obs        = " ///
	             as res %9.0f e(N)

	dis _col( 5) as txt "Eigenvalues > 0      = " ///
	             as res %9.0f e(np) ///
	    _col(47) as txt "Mardia fit measure 1 = " ///
	             as res %9.4f `e(mardia1)'

	dis _col( 5) as txt "Retained dimensions  = " ///
	             as res %9.0f e(p) ///
	    _col(47) as txt "Mardia fit measure 2 = " ///
	             as res %9.4f `e(mardia2)'

	if "`e(unique)'" == "0" {
		dis _col(5) as txt ///
		    "(solution not unique in " e(p) " dimensions " ////
		    "due to common eigenvalues)"
	}

// tables and plots

	if (`neigen' > 0)      EigenTable `neigen'
	if ("`config'" != "")  estat config
	if ("`plot'"   == "")  mdsconfig
end


program EigenTable
	args neigen

	tempname csumabs csumsq evabs evsq sumabs sumsq Ev

	local n = min(`neigen', e(np))

	matrix `Ev'  = e(Ev)
	local m = colsof(`Ev')

	scalar `sumabs' = 0
	scalar `sumsq'  = 0
	forvalues i = 1/`m' {
		scalar `sumabs' = `sumabs' + abs(`Ev'[1,`i'])
		scalar `sumsq'  = `sumsq'  + `Ev'[1,`i']^2
	}

	dis
	Hline TT
	dis as txt _col(18) "{c |} " _skip(18)  ///
	    "abs(eigenvalue)          (eigenvalue)^2"
	dis as txt _col(5) "  Dimension  {c |} " ///
            " Eigenvalue      Percent    Cumul.       Percent    Cumul."
	Hline +

	scalar `csumabs' = 0
	scalar `csumsq'  = 0
	forvalues i = 1/`n' {
		scalar `evabs'   = abs(`Ev'[1,`i'])
		scalar `evsq'    = `Ev'[1,`i']^2

		scalar `csumabs' = `csumabs' + `evabs'
		scalar `csumsq'  = `csumsq'  + `evsq'

		dis as txt _col(10) %6.0f `i' "  {c |} "            ///
		    as res _col(21) %10.0g `Ev'[1,`i']              ///
		    as res _col(38) %6.2f 100*(  `evabs'/`sumabs')  ///
			   _col(48) %6.2f 100*(`csumabs'/`sumabs')  ///
			   _col(62) %6.2f 100*(   `evsq'/`sumsq')   ///
			   _col(72) %6.2f 100*( `csumsq'/`sumsq')

		if (`i'==e(p) & e(p)<`n')  Hline +
	}
	Hline BT
end

program Hline
	args c

	dis as txt _col(5) "{hline 13}{c `c'}{hline 60}"
end
exit



⌨️ 快捷键说明

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