You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
1.5 KiB
Plaintext

capture program drop conc
program conc,rclass
syntax varlist, comp(varlist) [tconc(real 0.4)]
di as result "{hline}"
di "{bf:Concurrent validity}"
di as result "{hline}"
di
local n : word count `varlist'
local p : word count `comp'
matrix m = J(`n',`p',.)
matrix rownames m = `varlist'
matrix colnames m = `comp'
local r = 1
foreach i in `varlist' {
local c = 1
foreach j in `comp' {
qui corr `i' `j'
mat e = r(C)
local f = e[2,1]
mat m[`r',`c'] = `f'
local `++c'
}
local `++r'
}
*mat li m, format(%3.2f) noheader
tokenize `varlist'
local maxv = length("`1'")
forvalues i=1/`n' {
local lenv = length("``i''")
if `lenv' > `maxv' local maxv = `lenv'
}
local decv = `maxv'+6
tokenize `comp'
local maxc = length("`1'")
forvalues i=1/`p' {
local lenc = length("``i''")
if `lenc' > `maxc' local maxc = `lenc'
}
local decc = `maxc'+4
local col = `decv'
foreach c in `comp' {
di as result _col(`col') "`c'" _c
local col = `col'+`decc'
}
di
local i = 1
foreach x in `varlist' {
local var`i' = "`x'"
local `++i'
}
forvalues i=1/`n' {
di as result "`var`i''" _c
local col = `decv'
forvalues j=1/`p' {
local t = m[`i',`j']
if `t' > `tconc' | `t' < -`tconc' {
di as result _col(`=`col'-1') %5.2f `t' _c
}
else di as text _col(`=`col'-1') %5.2f `t' _c
local col = `col'+`decc'
}
di
}
end
*conc HA-MOC, comp(ioc1 ioc2) tconc(0.4)
*conc x1-x40, comp(x1 x2) tconc(0.4)