Werk & Studie alle pijlers

statistiek in R

28-02-2013 17:23 9 berichten
Alle reacties Link kopieren
Zijn er hier mensen die bekend zijn met R en hun analyses ook in R uitvoeren? Ik gebruik normaal SPSS en ben dus (nog) niet zo bekend met R. Maar nu wil ik iets doen wat SPSS niet kan en dus heb ik het toch maar gedownload. Met alle packages en een boek dat me er doorheen helpt leek het wel te doen.



Maar nu. Om te kijken of het allemaal goed ging wilde ik een between x within ANOVA testen. Ik gebruik het ez package en de ezANOVA functie en de data komen redelijk overeen met wat SPSS zegt. Mooi dus.



Wilde ik vervolgens het WRS package gebruiken en specifiek de tsplit functie. Ik dacht hier ook weer een between x within design mee te doen en met tr=0 eenzelfde output te krijgen als met SPSS en de ezANOVA. Maar nu komen de waardes niet overeen.



Iemand een idee waar mijn denkfout zit?
Alle reacties Link kopieren
Ik zou even de functie googlen, er zijn veel voorbeelden te vinden op internet in R.

Ik ken namelijk die functies die je gebruikt niet. En ik heb nu geen tijd om het voor je uit te testen.
Alle reacties Link kopieren
Ik heb gegoogeld, op alle termen die ik me kan bedenken, maar kom er niet aan uit. Of nou ja, van wat ik begreep zouden de waardes hetzelfde moeten zijn. In ieder geval allebei een between x within design. Maar de waardes verschillen nogal. Vooral de within factor main effect.



Over de tsplit is niet heel veel te vinden. Maar ik heb Wilcox' boek en ik volg alles precies zoals hij het schrijft. Volgens mij is het dus niet een kwestie van verkeerd gebruik, maar van verschillende dingen doen. Kan me natuurlijk vergissen.
Alle reacties Link kopieren
WRS heeft ook nauwelijks help-documenten. Ik denk dat het iets doet wat ik niet begrijp. Of ik doe iets verkeerd. Hmm.
Alle reacties Link kopieren
Ik ben niet bekend met WRS, maar zou het kunnen dat je de independent variables in een andere volgorde toevoegt (kan uitmaken als je continue covariaten hebt) of dat iets niet als factor wordt gelezen (e.g. je hebt een variable c(1,2,3) en elk nummer staat voor een groep (is dus nominaal en zou een factor moeten zijn), maar R behandelt het als een continue variable)?



Hm, even WRS installeren... Pff, staat niet op CRAN, dus geen helppages inderdaad. Balen. Ik ben met packages altijd voorzichtig maar in dit geval zou het me helemaal niet verbazen als er gewoon ergens een foutje inzit, dat overkomt de besten. Ik ben de functies een beetje ingedoken, via tsplit naar covmtrim, en kwam dit tegen:

covest[1, 1] <- (n - 1) * winvar(x[[grp[1]]], tr)/(h * (h - 1))

. Winvar berekent de trimmed variance van x, en als trim 0 is (zoals jij het zet) is dat dus gewoon de variance van x. Als trim 0 is, zijn n en h gelijk. Dus dit berekent: (n-1) * (SSx/(n-1)) / (n * (n-1)) = SSx/(n*(n-1)) = var(x)/n. En dat slaat het op als de variance van x (i.e. element [1,1] van de covariance matrix).

Zelfde voor covariance:

covest[j, k] <- (n - 1) * wincor(x[[grp[j]]], x[[grp[k]]],

tr)$cov/(h * (h - 1))

Dat is (n-1) * cov(xj, xk) / (n * (n-1)) = cov(xj, xk)/n.



Je ziet het verschil met deze code:

x <- rnorm(100)

y <- rnorm(100)

xy <- cbind(x, y)

cov(xy)

covmtrim(xy, tr=0)



Nou kan het natuurlijk heel goed dat dat de bedoeling is... Deze waarden worden daarna gebruikt in johansp. Daar heet het 'vsqse' en ik weet niet genoeg van wat er daar berekend wordt om te weten of de variance en covariance wel of niet door n gedeeld moet zijn. Het viel me alleen op, ik had het niet eerder gezien.



Sorry dat ik niet meer kan helpen dan 'misschien klopt de functie gewoon niet'! Het was in elk geval een leuke manier om m'n lunchpauze interessant te houden, nu ga ik weer terug naar m'n eigen R werk
Alle reacties Link kopieren
Whaah, dank je wel. En succes met je R-werk.



Ja, dat continu vs niet-continu was mijn eerste probleem (nadat ik had ontdekt hoe ik data moet laden). Dat gelukkig op weten te lossen door tekst in plaats van nummers te gebruiken en het wordt in de ezANOVA dus als factor gelezen. Maar is verder ook niet relevant voor de tsplit, want daar leest-ie de factoren niet. Er zijn twee manieren om de tsplit te doen en alle waardes zijn hetzelfde. Gebruik nu dus de 'brede' variatie, waar alle combinatie van levels naast elkaar staan.



Ik begrijp wat een ANOVA doet, maar die formules van de tsplit, het is alsof ik Chinees zie. Het idee is natuurlijk om verder te gaan met die tsplit (als ik gewoon een between x within subjects ANOVA wilde had ik R niet per se nodig), maar ik wil trimmen en eigenlijk vooral bootstrappen. Mijn data breken zo ongeveer alle assumpties van een ANOVA.



Ik zie via GoogleBooks dat Discovering Statistics using R deze formules gebruikt. Ik heb z'n SPSS boek en heb daar indertijd veel aan gehad. Ging er stiekem eigenlijk wel vanuit dat ze zouden kloppen, de functies. Alleen misschien iets anders zouden doen dan ik dacht.
Alle reacties Link kopieren
Okay, het kan inderdaad goed dat de functies kloppen! Het viel me alleen op, had het niet eerder gezien.



Kun je je data niet zelf trimmen? Dat is niet zo moeilijk, gewoon besluiten wat je er uit wilt gooien, nieuwe variabelen maken, en daar je gewone analyse op doen. Lijkt me, misschien denk ik te simpel vandaag.



Voor bootstrap, hm... Wat voor bootstrap wil je doen? Case resampling, residual resampling of nog wat anders? Vooral de eerste is makkelijk te schrijven - er zijn volgens mij functies voor maar als je dat niet kunt vinden wil ik je er wel stap voor stap doorheen praten?
Alle reacties Link kopieren
Hmm, maar houdt die trim er dan geen rekening mee dat de dataset incompleet is? Wilcox geeft argumenten voor bootstrap-t, maar ik twijfel nu of ik niet voor een mixed model moet gaan. Daar moet ik dan eerst induiken, want ik begrijp geloof ik niet precies wat die doen en of die assumpties heeft zoals een ANOVA.



Het is in principe een heel simpele dataset, maar omdat ik geen non-parametrische variant van de between x within ANOVA kan vinden weet ik niet zo goed waar ik anders zou moeten beginnen.
Alle reacties Link kopieren
Je boeken zouden ergens moeten uitleggen hoe die correctie voor het trimmen plaatsvindt en dan kun je dat zelf toevoegen.

Misschien inderdaad maar eerst uitzoeken wat de analyses precies inhouden, dan kun je ook beter kiezen wat jij nodig hebt Succes!

Dit is een oud topic. Het topic is daarom gesloten.
Maak een nieuw topic aan om verder praten over dit onderwerp.

Terug naar boven