Dit is een site voor studenten van de Open Universiteit. Voordat je een vraag kunt stellen moet je even een account aanmaken (dit systeem is niet gekoppeld aan je OU studentnummer en wachtwoord).

Welkom bij het vraag- en antwoord systeem van de onderzoeks-practica van de studie psychologie bij de Open Universiteit.

Houd er, als je een vraag stelt, rekening mee dat je de richtlijnen volgt!

Ik heb hulp nodig bij contrast commando's in R

0 leuk 0 niet-leuks
Beste Dirk, Gjalt-Jorn, Ron.......

Ik werk voor OEO in R.

En ik loop vast bij het commando summary.Im(dat) in het boek wordt het voorbeeld viagramodel gebruikt. maar omdat he opgeslagen wordt als dat heb ik dat gebruikt.

Boek zegt: summary.lm(viagraModel)

summary.lm(dat);
Error in if (p == 0) { : argument is of length zero

> summary.lm(dat$libido, dat$dose);
Error: $ operator is invalid for atomic vectors

Boek zegt: 'contrasts(predictor variable)<-contrast instructions'

> contrasts(dose)<-contrasts instructions);
Error: unexpected symbol in "contrasts(dose)<-contrasts instructions"

> contrasts(dase)contr.helmert(n);
Error: unexpected symbol in "contrasts(dase)contr.helmert"

Ik snap niet helemaal wat het betekent en of welke commando's ik hier kan gebruiken.

Kun je mij helpen?

Hartelijke groet,

Tiffany Kip
gevraagd 23 maart 2017 in Inleiding Data Analyse (IDA) door TiffanyOW (470 punten)

1 Antwoord

0 leuk 0 niet-leuks

Wat ik doe voor contrasten is het volgende:

### Constrasts
# gelijk aan Difference van SPSS
vs12.3 <- c(-1, -1, 2);
vs1.2 <- c(-1, 1, 0);
contrasts(dat$var) <- cbind(vs12.3, vs1.2);
(edit vanwege einde commando's);
beantwoord 23 maart 2017 door Reinout Vrijhoef (7,480 punten)
bewerkt 23 maart 2017 door Reinout Vrijhoef
> `contrasts<- c(-2,1,1)<- c(0,-1,1) contrasts(dat$dose) <-cbind(vs12.3, vs1.2);
+

Bedoelde je op deze manier?

Ik krijg een +

Groeten Tiffany

Ik maak twee variabelen aan: vs12.3 vergelijkt groepen 1 en 2 met groep 3 (controle groep); vs1.2 vergelijkt groep 1 met groep 2 (twee experimentele condities). Die variabelen worden gecombineerd in een matrix met cbind() en toegewezen aan de attributes van de variabele met contrasts(dat$var).

> vs12.3 <- c(-1, -1, 2) vs1.2 <- c(-1, 1, 0) contrasts(dat$var) <- cbind(vs12.3, vs1.2);
Error: unexpected symbol in "vs12.3 <- c(-1, -1, 2) vs1.2"
>

Dit is wat ik krijg, mis ik nog iets?

> vs12.3 <- c(-1, -1, 2) vs1.2 <- c(-1, 1, 0) contrasts(dat$dose) <- cbind(vs12.3, vs1.2);
Error: unexpected symbol in "vs12.3 <- c(-1, -1, 2) vs1.2"

in ieder geval 'dose'

Het lijkt erop, dat je alle commando's op één regel zet. Ik heb mijn eerste antwoord bewerkt, om het iets duidelijker te maken. Het zijn drie afzonderlijke commando's: twee om de variabelen te definiëren, een om de contrasten toe te wijzen.

Na dit commando: vs12.3 <- c(-1, -1, 2) moet je op enter drukken, of een ; toevoegen. Op één regel kan het ook:

vs12.3 <- c(-1, -1, 2); vs1.2 <- c(-1, 1, 0); contrasts(dat$dose) <- cbind(vs12.3, vs1.2);

Hi Reinout,

Ik krijg geen output met het commando,

> vs12.3 <- c(-1, -1, 2);
>
> vs1.2 <- c(-1, 1, 0);
> contrasts(dat$dose) <- cbind(vs12.3, vs1.2);
>

en

> vs12.3 <- c(-1, -1, 2); vs1.2 <- c(-1, 1, 0); contrasts(dat$dose) <- cbind(vs12.3, vs1.2);
>

Tiffany

Dat klopt, dan is het goed gegaan. Je ziet nu, met een beetje mazzel, bij de verschillende summary() of lsmeans() commando's wel de contrasten verschijnen.

> summary(dat);
        dose       libido          dummy1           dummy2      
 Placebo  :5   Min.   :1.000   Min.   :0.0000   Min.   :0.0000  
 Low Dose :5   1st Qu.:2.000   1st Qu.:0.0000   1st Qu.:0.0000  
 High Dose:5   Median :3.000   Median :0.0000   Median :0.0000  
               Mean   :3.467   Mean   :0.3333   Mean   :0.3333  
               3rd Qu.:4.500   3rd Qu.:1.0000   3rd Qu.:1.0000  
               Max.   :7.000   Max.   :1.0000   Max.   :1.0000

is dit het?

Tiffany

Excuses voor de vertraging, ik ben zelf ook een poos aan het puzzelen geweest. Ik kom op het volgende.

aov.ref <- lsmeans(aov.afex, ~iv1|iv2);
aov.contrast <- summary(contrast(aov.ref, method="pairwise"));

Ik gebruik het package afex voor het bouwen van het ANOVA model. Deze geeft de meest consistente resultaten, gelijk aan SPSS. Deze stuur je door naar lsmeans() om een ref.grid object te maken. Hier bereken je de contrasten mee met contrast(), waarbij je een methode aankunt geven (er zijn er meer dan alleen pairwise). Daar een summary() op en je krijg een mooi overzicht.

Beste Reinout,

Ik mis je reactie op mijn is dit het? Waardoor ik weet of ik je goed heb begrepen of niet.

jou aov.ref

aov.ref <- lsmeans(aov.afex, ~iv1|iv2); 
aov.contrast <- summary(contrast(aov.ref, method="pairwise"));

Ik kom hier niet uit.

Ik heb het geprobeerd, maar ik begrijp om te beginnen de 

iv1|iv2 notatie niet. dus ik weet niet goed wat ik daar aanzet doen ben en hoe ik het eventueel zou kunnen aanpassen. 

En ik loop nu een beetje vast bij contrasten.

Kun je mij verder helpen.

> aov.ref <- lsmeans(aov.afex, ~ dat$oor|dat$commando);
Error: could not find function "lsmeans"
> aov.ref <- lm(aov.afex, ~ dat$oor|dat$commando);
Error in stats::model.frame(formula = aov.afex, data = ~dat$oor | dat$commando,  : 
  object 'aov.afex' not found

Groeten Tiffany

...