[vastaus aiempaan viestiin]
| Kirjoittaja: | Reijo Sund |
|---|---|
| Sähköposti: | - |
| Päiväys: | 8.3.2011 14:05 |
Hei!
Olen esitellyt vuonna 2005 seminaarissa mainittujen
korrelaatioiden laskemista R:ää hyödyntäen (oli ihan
sukro sitä varten). Alla sukro ja esimerkkikoodia.
terv.
Reijo
***********************************************
SAVE HCORR / Heterogeneous Correlation Matrix
Generoidaan testiaineisto
MATRIX HETCOR
/// X1 X2 X3 X4
X1 1.0000 0.4198 0.1169 0.3112
X2 0.4198 1.0000 0.2695 0.3013
X3 0.1169 0.2695 1.0000 0.5418
X4 0.3112 0.3013 0.5418 1.0000
MAT SAVE HETCOR
MNSIMUL HETCOR,*,HC01,1000,0 / RND=rand(999)
..................................................................................
Luokitellaan muutama jatkuva muuttuja
CLASSIFICATION CLA1
-999 - 0.75: 0
0.75 - 999: 1
END
CLASSIFICATION CLA2
-999 - -1: 0
-1 - .5: 1
.5 - 1.5: 2
1.5 - 999: 3
END
FILE EXPAND HC01
VAR Y1:1,Y2:1 TO HC01 / Y1=MISSING Y2=MISSING
CLASSIFY HC01,CLA1,X3,Y1
CLASSIFY HC01,CLA2,X4,Y2
..................................................................................
Sukrokoodi heterogeenisen korrelaatiomatriisin tuottamiseksi
(Tarvitaan R sekä sen paketit polycor ja mvtnorm)
TUTSAVE HCORR
{init}{tempo -1}
{R}{line start}SCRATCH /{act}
{R}FILE COPY {print W1} TO NEW _HCORR{act}
{R}.{copy}{R}
{R}FILE STATUS _HCORR{act}{del line}
{W4=0}
keruu:
{line start}{save word W2}
if W2 '=' END then goto jatko
if W2 '<>' FIELDS: then goto eifi
{W4=1}{del line}
eifi:
if W4 = 0 then goto rivipois
{line start}{next word}{next word}{r}{save char W2}
{W3=W3&W2}
rivipois:
{del line}
{goto keruu}
jatko:
{del line}{del line}FILE DEL hcorr.dat{act}
{R}FILE LOAD _HCORR TO hcorr.dat / NAMES8=1{act}
{R}.{copy}{R}
{R}SAVEP CUR+2,CUR+9,hcorr.r
{R}* * * R-code start * * *
{R}coltypes <- c(
{R}{line start}{erase}{print W3}
purku:
{line start}{save char W2}{del}{u}{line end}
if W2 '=' {sp} then goto etene
if W2 '=' A then goto numeric
"factor",{R}{goto purku}
numeric:
"numeric",{R}{goto purku}
etene:
{l}{del}){R}
data <- read.table("hcorr.dat",TRUE,colClasses = coltypes){R}
library(mvtnorm){R}
library(polycor){R}
tulos <- hetcor(data,ML=TRUE){R}
matriisi <- as.matrix(tulos){R}
write.table(matriisi,"TULOS.DAT"){R}
tulos{R}
{u10}{act}{d10}
* * * R-code end * * *
{R}.{copy}{R}
{W1=hcorr.r}{W2=}{call SR}
{pre}{d}{pre}{d}
{R}.{copy}{R}
{R}LOADP TULOS.DAT,CUR+2{act}
{R}REPLACE ""","",C{act}
{R}{ins}/// {u}{ins}
{line start}{erase}MATRIX HCORR.M
{u}{line start}{erase}MAT SAVE HCORR.M{act}
{line start}{erase}MAT SAVE HCORR.M{act}
{line start}{erase}MAT LOAD HCORR.M{act}
{line start}
{end}
..................................................................................
Esimerkki 2 - Riskikäsitysten polykorinen korrelaatio
LOAD RISKI2
..................................................................................
Esimerkki - jatkuvat muuttujat tunnistetaan maskista A
VARS=X1(A),X2(A),Y1(B),Y2(B)
/HCORR HC01
| Vastaukset: |
|---|
Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!