[R] Reproducing SAS GLM in R
Christophe Pallier
pallier at lscp.ehess.fr
Tue Feb 22 14:55:09 CET 2005
It seems that you want to do is in a Anova with the within factors
"factCond" and "factRoi", right?
If this is correct, then you should try:
summary(aov(vectdata~factCond*factRoi+Error(factCond*factRoi)))
Christophe Pallier
www.pallier.org
Bela Bauer wrote:
> Hi,
>
> I'm still trying to figure out that GLM procedure in SAS.
> Let's start with the simple example:
>
> PROC GLM;
> MODEL col1 col3 col5 col7 col9 col11 col13 col15 col17 col19 col21
> col23 =/nouni;
> repeated roi 6, ord 2/nom mean;
> TITLE 'ABDERUS lat ACC 300-500';
>
> That's the same setup that I had in my last email. I have three
> factors: facSubj,facCond and facRoi. I had this pretty much figured
> out with three lengthy calls to lm(), but I have to extend my code to
> also work on models with four, five or even six factors, so that
> doesn't seem like a practical method any more. I've tried with the
> following code with glm(),anova() and drop1() (I use sum contrasts to
> reproduce those Type III SS values); I've also tried many other
> things, but this is the only somewhat reasonable result I get with glm.
>
> > options(contrasts=c("contr.sum","contr.poly"))
> > test.glm <- glm(vecData ~ (facCond+facSubj+facRoi)^2)
> > anova(test.glm,test="F")
> Analysis of Deviance Table
>
> Model: gaussian, link: identity
>
> Response: vecData
>
> Terms added sequentially (first to last)
>
>
> Df Deviance Resid. Df Resid. Dev F Pr(>F)
> NULL 239 1429.30
> facCond 1 2.21 238 1427.09 3.0764 0.08266 .
> facSubj 19 685.94 219 741.16 50.2463 < 2.2e-16 ***
> facRoi 5 258.77 214 482.38 72.0316 < 2.2e-16 ***
> facCond:facSubj 19 172.70 195 309.68 12.6510 < 2.2e-16 ***
> facCond:facRoi 5 10.37 190 299.31 2.8867 0.01803 *
> facSubj:facRoi 95 231.05 95 68.26 3.3850 4.266e-09 ***
> ---
> Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
> > drop1(test.glm,scope=.~.,test="F")
> Single term deletions
>
> Model:
> vecData ~ (facCond + facSubj + facRoi)^2
> Df Deviance AIC F value Pr(F)
> <none> 68.26 671.33
> facCond 1 70.47 676.97 3.0764 0.08266 .
> facSubj 19 754.19 1209.89 50.2463 < 2.2e-16 ***
> facRoi 5 327.03 1037.35 72.0316 < 2.2e-16 ***
> facCond:facSubj 19 240.96 936.05 12.6510 < 2.2e-16 ***
> facCond:facRoi 5 78.63 695.27 2.8867 0.01803 *
> facSubj:facRoi 95 299.31 836.09 3.3850 4.266e-09 ***
> ---
> Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
>
> Now, unfortunately this just isn't the output of SAS (roi corresponds
> to facRoi, ord corresponds to facCond)
>
>> Source DF Type III SS Mean Square F Value Pr
>> > F
>>
>> roi 5 258.7726806 51.7545361 21.28
>> <.0001
>> Error(roi) 95 231.0511739 2.4321176
>>
>> Adj Pr > F
>> Source G - G H - F
>>
>> roi <.0001 <.0001
>> Error(roi)
>>
>>
>> Greenhouse-Geisser Epsilon 0.5367
>> Huynh-Feldt Epsilon 0.6333
>>
>>
>> Source DF Type III SS Mean Square F Value
>> Pr > F
>>
>> ord 1 2.2104107 2.2104107 0.24
>> 0.6276
>> Error(ord) 19 172.7047994 9.0897263
>>
>>
>> Source DF Type III SS Mean Square F Value
>> Pr > F
>>
>> roi*ord 5 10.37034918 2.07406984 2.89
>> 0.0180
>> Error(roi*ord) 95 68.25732255 0.71849813
>>
>> Adj Pr > F
>> Source G - G H - F
>>
>> roi*ord 0.0663 0.0591
>> Error(roi*ord)
>>
>>
>> Greenhouse-Geisser Epsilon 0.4116
>> Huynh-Feldt Epsilon 0.4623
>
>
> As you can see, I get a correct p and F values for the facCond:facRoi
> interaction, but everything else doesn't come out right. The drop1()
> call gives me the correct degrees of freedom, but residual degrees of
> freedom seem to be wrong.
>
> Could you give me any hints how I could get to the SAS results? For
> the lm() calls that work (in special cases), refer to my posting from
> last Friday.
> I also have a 4-factorial example, and I've been told that people
> around here do 5- or 6-factorial multivariant ANOVAs, too, so I need a
> general solution.
>
> Thanks a lot!
>
> Bela
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
More information about the R-help
mailing list