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.

143 lines
4.2 KiB
Plaintext

7 months ago
program define testclv
syntax [,corr(real 0) nosim]
clear
qui set matsize 800
qui set memory 128m
set more off
if `corr'==0 {
local rho 0.0
}
else if `corr'==1 {
local rho 1.0
}
else {
local rho 0`corr'
}
if "`sim'"=="" {
capture use "C:\Documents and Settings\Jean-Benoit\Mes documents\THESE\clv\simul (rho=`rho')\result.dta", clear
if _rc==0 {
mkmat *,matrix(result)
use "C:\Documents and Settings\Jean-Benoit\Mes documents\THESE\clv\simul (rho=`rho')\resultpoly.dta", clear
mkmat *,matrix(resultpoly)
use "C:\Documents and Settings\Jean-Benoit\Mes documents\THESE\clv\simul (rho=`rho')\result2.dta", clear
mkmat *,matrix(result2)
use "C:\Documents and Settings\Jean-Benoit\Mes documents\THESE\clv\simul (rho=`rho')\resultpoly2.dta", clear
mkmat *,matrix(resultpoly2)
count if resultpoly21!=0
local deb=r(N)+1
}
else {
matrix result=J(100,14,0)
matrix resultpoly=J(100,14,0)
matrix result2=J(100,14,0)
matrix resultpoly2=J(100,14,0)
local deb=1
}
forvalues i=`deb'/100 {
di "`i'" _c
qui simirt,dim(7 7) cov(1 1 `rho') clear nbobs(500) store(C:\Documents and Settings\Jean-Benoit\Mes documents\THESE\clv\simul (rho=`rho')\data`i') replace
di "." _c
qui clv i*,nodendro nobiplot
di "." _c
local group:word 1 of `r(bestthresold)'
local group2:word 2 of `r(bestthresold)'
qui clv,nodendro nobiplot cons(`group')
di "." _c
matrix tmp=r(affect)
matrix result[`i',1]=tmp
di "." _c
qui clv,nodendro nobiplot cons(`group2')
di "." _c
matrix tmp=r(affect)
matrix result2[`i',1]=tmp
di "." _c
qui clv i*,nodendro nobiplot method(polychoric)
di "." _c
local group:word 1 of `r(bestthresold)'
local group2:word 2 of `r(bestthresold)'
qui clv,nodendro nobiplot cons(`group')
di "."
matrix tmp=r(affect)
matrix resultpoly[`i',1]=tmp
di "." _c
qui clv,nodendro nobiplot cons(`group2')
di "."
matrix tmp=r(affect)
matrix resultpoly2[`i',1]=tmp
drop _all
svmat result
save "C:\Documents and Settings\Jean-Benoit\Mes documents\THESE\clv\simul (rho=`rho')\result",replace
drop _all
svmat resultpoly
save "C:\Documents and Settings\Jean-Benoit\Mes documents\THESE\clv\simul (rho=`rho')\resultpoly",replace
drop _all
svmat result2
save "C:\Documents and Settings\Jean-Benoit\Mes documents\THESE\clv\simul (rho=`rho')\result2",replace
drop _all
svmat resultpoly2
save "C:\Documents and Settings\Jean-Benoit\Mes documents\THESE\clv\simul (rho=`rho')\resultpoly2",replace
}
}
foreach file in "result" "result2" "resultpoly" "resultpoly2" "result2nd" "result2nd2" {
drop _all
di "`file'"
use "C:\Documents and Settings\Jean-Benoit\Mes documents\THESE\clv\simul (rho=`rho')\\`file'",clear
quietly {
forvalues i=1/7 {
rename `file'`i' itemA`i'
rename `file'`=`i'+7' itemB`i'
}
gen conc=0
gen dis=0
forvalues i=1/7 {
forvalues j=`=`i'+1'/7 {
replace conc=conc+1 if itemA`i'==itemA`j'
replace conc=conc+1 if itemB`i'==itemB`j'
}
}
forvalues i=1/7 {
forvalues j=1/7 {
replace dis=dis+1 if itemA`i'==itemB`j'
}
}
gen result=.
replace result=1 if conc==42&dis==0&result==.
replace result=3 if conc<42&dis==0&result==.
replace result=4 if dis>0&conc>0&result==.
replace result=5 if dis==49&result==.
egen nbcl=rowmax(item*)
}
if "`file'"=="result" {
local text="CLV Classique"
}
if "`file'"=="result2" {
local text="CLV Classique 2e choix"
}
if "`file'"=="resultpoly" {
local text="CLV Polychoric"
}
if "`file'"=="resultpoly2" {
local text="CLV Polychoric 2e choix"
}
if "`file'"=="result2nd" {
local text="CLV 2nd ordre "
}
if "`file'"=="result2nd2" {
local text="CLV 2nd ordre 2e choix"
}
di in gr "`text'"
tab result
}
end