Re: Korrelaatiot ja kovarianssimatriisit

[vastaus aiempaan viestiin]

Kirjoittaja: Esko Kaukonen
Sähköposti:    -
Päiväys: 28.6.2011 10:56

Hei!

Kiitos, tämä on hieno, mutta onko keinoa päästä tuohon pelkästään Survolla?

Terveisin Esko

Reijo Sund kirjoitti 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!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.