[R] Variance Components in R

Iuri Gavronski iuri at proxima.adm.br
Mon Aug 21 00:31:42 CEST 2006


Dear Harold and others,

I have changed the syntax for lmer() and used this one:
require(lme4)
gt <- read.table("gt5.txt")
sink("GT output.txt")
attach(gt)
system.time(fm <- lmer(RATING ~ 1
+(1|CHAIN)
+(1|SECTOR)
+(1|RESP)
+(1|ASPECT)
+(1|ITEM)
+(1|SECTOR*RESP)
+(1|SECTOR*ASPECT)
+(1|SECTOR*ITEM)
+(1|CHAIN*RESP)
+(1|CHAIN*ASPECT)
+(1|CHAIN*ITEM)
+(1|RESP*ASPECT)
+(1|RESP*ITEM)
+(1|SECTOR*RESP*ASPECT)
+(1|SECTOR*RESP*ITEM)
+(1|CHAIN*RESP*ASPECT),
gt)
)
options(digits = 4)
options(OutDec = ",")
summary(fm, digits = 4)
sink()

Then the output I got from summary(lm) was:
Linear mixed-effects model fit by REML
Formula: RATING ~ 1 + (1 | CHAIN) + (1 | SECTOR) + (1 | RESP) + (1 |
ASPECT) +      (1 | ITEM) + (1 | SECTOR * RESP) + (1 | SECTOR *
ASPECT) +      (1 | SECTOR * ITEM) + (1 | CHAIN * RESP) + (1 | CHAIN *
ASPECT) +      (1 | CHAIN * ITEM) + (1 | RESP * ASPECT) + (1 | RESP *
ITEM) +      (1 | SECTOR * RESP * ASPECT) + (1 | SECTOR * RESP * ITEM)
+      (1 | CHAIN * RESP * ASPECT)
   Data: gt
  AIC  BIC logLik MLdeviance REMLdeviance
 2386 2462  -1176       2353         2352
Random effects:
 Groups                 Name        Variance Std.Dev.
 CHAIN * RESP * ASPECT  (Intercept) 5,89e-01 0,7675133
 SECTOR * RESP * ITEM   (Intercept) 4,91e-02 0,2216137
 RESP * ITEM            (Intercept) 2,75e-01 0,5242572
 CHAIN * RESP           (Intercept) 1,98e+00 1,4068696
 SECTOR * RESP * ASPECT (Intercept) 5,17e-10 0,0000227
 CHAIN * ITEM           (Intercept) 5,17e-10 0,0000227
 RESP * ASPECT          (Intercept) 4,77e-01 0,6908419
 SECTOR * RESP          (Intercept) 3,42e-01 0,5848027
 CHAIN * ASPECT         (Intercept) 1,61e-02 0,1269306
 SECTOR * ITEM          (Intercept) 2,24e-02 0,1495102
 ITEM                   (Intercept) 5,17e-10 0,0000227
 CHAIN                  (Intercept) 8,88e-01 0,9424441
 RESP                   (Intercept) 2,80e+00 1,6747970
 SECTOR * ASPECT        (Intercept) 5,17e-10 0,0000227
 ASPECT                 (Intercept) 8,07e-01 0,8984151
 SECTOR                 (Intercept) 5,17e-10 0,0000227
 Residual                           1,03e+00 1,0172221
number of obs: 647, groups: CHAIN * RESP * ASPECT, 138; SECTOR * RESP
* ITEM, 138; RESP * ITEM, 70; CHAIN * RESP, 70; SECTOR * RESP *
ASPECT, 47; CHAIN * ITEM, 36; RESP * ASPECT, 24; SECTOR * RESP, 24;
CHAIN * ASPECT, 18; SECTOR * ITEM, 18; ITEM, 9; CHAIN, 9; RESP, 8;
SECTOR * ASPECT, 6; ASPECT, 3; SECTOR, 3

Fixed effects:
            Estimate Std. Error t value
(Intercept)    5,797      0,891    6,51

Comparing the output I had from R and SPSS, for the same database:

Component      Estimate	 SPSS	R
Var(CHAIN)     ,530		0,888
Var(SECTOR)    ,000(a)		0,000
Var(RESP)      2,734		2,800
Var(ASPECT)    ,788		0,807
Var(ITEM)      ,000(a)		0,000
Var(SECTOR *   ,061		0,342
RESP)		
Var(SECTOR *   ,000(a)		0,000
ASPECT)		
Var(SECTOR *   ,031		0,022
ITEM)		
Var(CHAIN *    2,183		1,980
RESP)		
Var(CHAIN *    ,038		0,016
ASPECT)		
Var(CHAIN *    ,003		0,000
ITEM)		
Var(RESP *     ,467		0,477
ASPECT)		
Var(RESP *     ,279		0,275
ITEM)		
Var(SECTOR *   ,000(a)		0,000
RESP * ASPECT)		
Var(SECTOR *   ,077		0,049
RESP * ITEM)		
Var(CHAIN *    ,773		0,589
RESP * ASPECT)		
Var(Error)     ,882		1,030

As can be seen on the previous table, the results are different. Am I
specifing a different model on R and SPSS?

Is it possible to have the output from summary(lmer()) in #,###
format, instead of scientific format?

Best regards,

Iuri.
On 8/20/06, Iuri Gavronski <iuri at proxima.adm.br> wrote:
> Harold,
>
> I have tried the following syntax:
>
> > fm <- lmer(RATING ~ CHAIN*SECTOR*RESP +(1|CHAIN*SECTOR*RESP), gt)
> > summary(fm)
> Linear mixed-effects model fit by REML
> Formula: RATING ~ CHAIN * SECTOR * RESP + (1 | CHAIN * SECTOR * RESP)
>    Data: gt
>       AIC      BIC    logLik MLdeviance REMLdeviance
>  2767.466 2807.717 -1374.733   2710.253     2749.466
> Random effects:
>  Groups                Name        Variance Std.Dev.
>  CHAIN * SECTOR * RESP (Intercept) 5.7119   2.3900
>  Residual                          2.8247   1.6807
> number of obs: 647, groups: CHAIN * SECTOR * RESP, 71
>
> Fixed effects:
>                     Estimate Std. Error  t value
> (Intercept)        4.5760000  2.6193950  1.74697
> CHAIN             -0.2014603  0.7984752 -0.25231
> SECTOR            -0.1093434  2.3516722 -0.04650
> RESP               0.0184237  0.0276326  0.66674
> CHAIN:SECTOR       0.1423668  0.3005919  0.47362
> CHAIN:RESP         0.0024786  0.0083782  0.29584
> SECTOR:RESP       -0.0046001  0.0240517 -0.19126
> CHAIN:SECTOR:RESP -0.0011219  0.0030762 -0.36470
>
> Correlation of Fixed Effects:
>               (Intr) CHAIN  SECTOR RESP   CHAIN:SECTOR CHAIN:R SECTOR:
> CHAIN         -0.435
> SECTOR        -0.845 -0.050
> RESP          -0.778  0.345  0.645
> CHAIN:SECTOR   0.886 -0.732 -0.635 -0.680
> CHAIN:RESP     0.351 -0.782  0.038 -0.466  0.566
> SECTOR:RESP    0.666  0.038 -0.786 -0.822  0.500       -0.046
> CHAIN:SECTOR: -0.709  0.586  0.500  0.879 -0.789       -0.729  -0.635
> >
>
> Again, my problem is: there are no fixed effects...
> The same dataset, when running at SPSS (I have a subset with 647
> records), using the syntax I showed somewhere before, gives me the
> following output:
>
> Variance Components Estimation
> Variance Estimates
> Component      Estimate
> Var(CHAIN)     ,530
> Var(SECTOR)    ,000(a)
> Var(RESP)      2,734
> Var(ASPECT)    ,788
> Var(ITEM)      ,000(a)
> Var(SECTOR *   ,061
> RESP)
> Var(SECTOR *   ,000(a)
> ASPECT)
> Var(SECTOR *   ,031
> ITEM)
> Var(CHAIN *    2,183
> RESP)
> Var(CHAIN *    ,038
> ASPECT)
> Var(CHAIN *    ,003
> ITEM)
> Var(RESP *     ,467
> ASPECT)
> Var(RESP *     ,279
> ITEM)
> Var(SECTOR *   ,000(a)
> RESP * ASPECT)
> Var(SECTOR *   ,077
> RESP * ITEM)
> Var(CHAIN *    ,773
> RESP * ASPECT)
> Var(Error)     ,882
> Dependent Variable: RATING
>  Method: Restricted Maximum Likelihood Estimation
> a This estimate is set to zero because it is redundant.
>
> That's what I would like to get from R.
>
> Any help would be appreciated.
>
> Best regards,
>
> Iuri
>
> On 8/20/06, Iuri Gavronski <iuri at ufrgs.br> wrote:
> >
> > Harold, I have tried to adapt your syntax and got some problems. Some responses from lmer:
> >
> > On this one, I have tried to use "1" as a grouping variable. As I understood from Bates (2005), grouping variables are like nested design, which is not the case.
> > > fm <- lmer(RATING ~ CHAIN*SECTOR*RESP +(CHAIN*SECTOR*RESP|1), gt)
> > Erro em lmer(RATING ~ CHAIN * SECTOR * RESP + (CHAIN * SECTOR * RESP |  :
> >         Ztl[[1]] must have 1 columns
> >
> > Then I have tried to ommit the fixed effects...
> > > fm <- lmer(RATING ~ (CHAIN*SECTOR*RESP|1), gt)
> > Erro em x[[3]] : não é possível dividir o objeto em subconjuntos
> > (the error message would be something like "not possible to divide the object in subsets"... I don't know the original wording of message because my R is in Portuguese...)
> >
> > Then... I have tried to specify RESP (the persons) as the grouping variable (which doesn't make any sense to me, but...)
> > > fm <- lmer(RATING ~ CHAIN*SECTOR*RESP +(CHAIN*SECTOR|RESP), gt)
> > Warning message:
> > nlminb returned message false convergence (8)
> >  in: "LMEoptimize<-"(`*tmp*`, value = list(maxIter = 200, tolerance = 1.49011611938477e-08,
> > >
> >
> > Any idea?
> >
> >
> > Regards,
> >
> > Iuri.
> >
> >
> > On 8/17/06, Doran, Harold <HDoran at air.org> wrote:
> > >
> > >
> > >
> > > Iuri:
> > >
> > > Here is an example of how a model would be specified using  lmer using a couple of your factors:
> > >
> > > fm <- lmer(response.variable ~ chain*sector*resp  +(chain*sector*resp|GroupingID), data)
> > >
> > > This will give you a main effect for each factor and all  possible interactions. However, do you have a grouping variable? I wonder if aov  might be the better tool for your G-study?
> > >
> > > As a side note, I don't see that you have a factor for  persons. Isn't this also a variance component of interest for your  study?
> > >
> > >
> > >    ________________________________
>    From: prof.iuri at gmail.com    [mailto:prof.iuri at gmail.com] On Behalf
> Of Iuri    Gavronski
> > > Sent: Thursday, August 17, 2006 1:26 PM
> > > To:    Doran, Harold
> > >
> > > Cc: r-help at stat.math.ethz.ch
> > >
> > > Subject: Re:    [R] Variance Components in R
> > >
> > >
> > >
> > >
> > > I am trying to replicate Finn and Kayandé (1997) study on G-theory    application on Marketing. The idea is to have people evaluate some aspects of    service quality for chains on different economy sectors. Then, conduct a    G-study to identify the generalizability coefficient estimates for different    D-study designs.
> > > I have persons rating 3 different items on 3 different    aspects of service quality on 3 chains on 3 sectors. It is normally assumed on    G-studies that the factors are random. So I have to specify a model to    estimate the variance components of CHAIN SECTOR RESP ASPECT ITEM, and the interaction of    SECTOR*RESP SECTOR*ASPECT SECTOR*ITEM CHAIN*RESP CHAIN*ASPECT CHAIN*ITEM    RESP*ASPECT RESP*ITEM SECTOR*RESP*ASPECT SECTOR*RESP*ITEM CHAIN*RESP*ASPECT.    '*' in VARCOMP means a crossed design.
> > > Evaluating only the two dimensions    interactions (x*y) ran in few minutes with the full database. Including three    interactions (x*y*z) didn't complete the execution at all. I have the data and    script sent to a professor of the department of Statistics on my university    and he could not run it on either SPSS or SAS (we don't have SAS licenses here    at the business school, only SPSS). Nobody here at the business school has any    experience with R, so I don't have anyone to ask for help.
> > > Ì am not    sure if I have answered you question, but feel free to ask it again, and I    will try to restate the problem.
> > >
> > > Best regards,
> > >
> > > Iuri
> > >
> > >
> > >
> > >
> > > On 8/17/06, Doran,    Harold <HDoran at air.org>    wrote:
> > >
> > > >
> > > >
> > > >
> > > >
> > > > This      will (should) be a piece of cake for lmer. But, I don't speak SPSS. Can      you write your model out as a linear model and give a brief description of      the data and your problem?
> > > >
> > > > In      addition to what Spencer noted as help below, you should also check out the      vignette in the mlmRev package. This will give you many      examples.
> > > >
> > > > vignette('MlmSoftRev')
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >        ________________________________
>        From: prof.iuri at gmail.com        [mailto:prof.iuri at gmail.com]
>      On Behalf Of Iuri Gavronski
> > > > Sent: Thursday, August 17,        2006 11:16 AM
> > > > To: Doran, Harold
> > > >
> > > >
> > > > Subject: Re: [R] Variance Components in        R
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > > 9500 records. It didn`t run in SPSS or SAS on Windows machines,      so I am trying to convert the SPSS script to R to run in a RISC station at      the university.
> > >
> > >
> > >
> > >
> > > On 8/17/06, Doran,      Harold <HDoran at air.org>      wrote:
> > >
> > > >
> > >
> > > Iuri:
> > >
> > > The lmer function is optimal for large data with crossed random        effects.
> > > How large are your data?
> > >
> > > > -----Original        Message-----
> > > > From: r-help-bounces at stat.math.ethz.ch
> > >
> > > > [mailto: r-help-bounces at stat.math.ethz.ch] On Behalf Of Iuri        Gavronski
> > >
> > > > Sent: Thursday, August 17, 2006 11:08 AM
> > > > To:        Spencer Graves
> > > > Cc: r-help at stat.math.ethz.ch
> > >
> > > > Subject: Re: [R]        Variance Components in R
> > > >
> > > > Thank you for your reply.
> > > >        VARCOMP is available at SPSS advanced models, I'm not sure
> > > > for        how long it exists... I only work with SPSS for the last
> > > > 4        years...
> > > > My model only has crossed random effects, what perhaps        would
> > > > drive me to lmer().
> > > > However, as I have unbalanced        data (why it is normally called
> > > > 'unbalanced design'? the data was        not intended to be
> > > > unbalanced, only I could not get responses for        all cells...),
> > > > I'm afraid that REML would take too much CPU,        memory and time
> > > > to execute, and MINQUE would be faster and provide        similar
> > > > variance estimates (please, correct me if I'm wrong on        that point).
> > > > I only found MINQUE on the maanova package, but as my        study
> > > > is very far from genetics, I'm not sure I can use this        package.
> > > > Any comment would be appreciated.
> > > >        Iuri
> > > >
> > >
> > > > On 8/16/06, Spencer Graves <spencer.graves at pdf.com > wrote:
> > > > >
> > > >        >       I used SPSS over 25 years ago,        but I don't recall
> > > > ever fitting a
> > > > > variance components        model with it.  Are all your random
> > > > effects        nested?
> > > > > If they were, I would recommend you use 'lme' in the        'nlme' package.
> > > > > However, if you have crossed random effects,        I suggest you
> > > > try 'lmer'
> > > > > associated with the 'lme4'        package.
> > > > >
> > > > >       For        'lmer', documentation is available in Douglas
> > > > Bates.        Fitting
> > > > > linear mixed models in R. /R News/, 5(1):27-30, May        2005
> > >
> > > > > (www.r-project.org ->        newsletter).  I also recommend you try the
> > >
> > > > > vignette        available with the 'mlmRev' package (see, e.g.,
> > >
> > > > >  http://finzi.psych.upenn.edu/R/Rhelp02a/archive/81375.html        ).
> > >
> > > > >
> > > >        >        Excellent        documentation for both 'lme' (and indirectly for
> > > > > 'lmer') is        available in Pinheiro and Bates (2000)
> > > > Mixed-Effects        Models
> > > > > in S and S-Plus (Springer).  I have        personally recommended
> > > > this book
> > > > > so many times on        this listserve that I just now got 234 hits for
> > > > >        RSiteSearch("graves pinheiro").  Please don't hesitate to pass        this
> > > > > recommendation to your university        library.  This book is
> > > > the primary
> > > > >        documentation for the 'nlme' package, which is part of the
> > > >        standard R
> > > > > distribution.  A subdirectory        "~library\nlme\scripts" of your R
> > > > > installation includes        files named "ch01.R", "ch02.R", ...,
> > > > "ch06.R",
> > > > >        "ch08.R", containing the R scripts described in the book.  These        R
> > > > > script files make it much easier and more enjoyable to        study that
> > > > > book, because they make it much easier to try the        commands
> > > > described
> > > > > in the book, one line at a time,        testing modifications to check you
> > > > > comprehension,        etc.  In addition to avoiding problems with
> > > > >        typographical errors, it also automatically overcomes a few
> > > > minor        but
> > > > > substantive changes in the notation between S-Plus and        R.
> > > > >
> > > > >       Also, the        "MINQUE" method has been obsolete for over
> > > > 25 years.
> > > > >        I recommend you use method = "REML" except for when you want to
> > > >        > compare two nested models with different fixed        effects;  in
> > > > that case,
> > > > > you should use        method = "ML", as explained in Pinheiro and
> > > > Bates (2000).
> > > >        >
> > > > >       Hope this        helps.
> > > > >       Spencer        Graves
> > > > >
> > > > > Iuri Gavronski wrote:
> > > > > >        Hi,
> > > > > >
> > > > > > I'm trying to fit a model using        variance components in R, but if
> > > > > > very new on it, so I'm        asking for your help.
> > > > > >
> > > > > > I have imported        the SPSS database onto R, but I don't know how to
> > > > > >        convert the commands... the SPSS commands I'm trying to
> > > > convert        are:
> > > > > > VARCOMP
> > > > >        >    RATING BY CHAIN SECTOR RESP ASPECT        ITEM
> > > > > >    /RANDOM = CHAIN SECTOR RESP        ASPECT ITEM
> > > > > >    /METHOD = MINQUE        (1)
> > > > > >    /DESIGN = CHAIN SECTOR RESP        ASPECT ITEM
> > > > >        >                SECTOR*RESP        SECTOR*ASPECT SECTOR*ITEM CHAIN*RESP
> > > > > > CHAIN*ASPECT        CHAIN*ITEM RESP*ASPECT RESP*ITEM
> > > > >        >                SECTOR*RESP*ASPECT        SECTOR*RESP*ITEM
> > > > CHAIN*RESP*ASPECT
> > > > >        >    /INTERCEPT = INCLUDE.
> > > > >        >
> > > > > > VARCOMP
> > > > >        >    RATING BY CHAIN SECTOR RESP ASPECT        ITEM
> > > > > >    /RANDOM = CHAIN SECTOR RESP        ASPECT ITEM
> > > > > >    /METHOD = REML
> > > > > >    /DESIGN = CHAIN SECTOR RESP        ASPECT ITEM
> > > > >        >                SECTOR*RESP        SECTOR*ASPECT SECTOR*ITEM CHAIN*RESP
> > > > > > CHAIN*ASPECT        CHAIN*ITEM RESP*ASPECT RESP*ITEM
> > > > >        >                SECTOR*RESP*ASPECT        SECTOR*RESP*ITEM
> > > > CHAIN*RESP*ASPECT
> > > > >        >    /INTERCEPT = INCLUDE.
> > > > >        >
> > > > > > Thank you for your help.
> > > > > >
> > > >        > > Best regards,
> > > > > >
> > > > > > Iuri.
> > > >        > >
> > > > > >        _______________________________________
> > > > > > Iuri Gavronski -        iuri at ufrgs.br
> > >
> > > > >        > doutorando
> > > > > > UFRGS/PPGA/NITEC - www.ppga.ufrgs.br        Brazil
> > > > > >
> > > > > >        ______________________________________________
> > > > > > 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
> > > >        > > and provide commented, minimal, self-contained, reproducible        code.
> > > > > >
> > > >        >
> > > >
> > > >       [[alternative        HTML version deleted]]
> > > >
> > > >        ______________________________________________
> > >
> > > > 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
> > > > and        provide commented, minimal, self-contained, reproducible code.
> > > >
> > >
> > >
> > >
> > >
> > >
> >
> >
>



More information about the R-help mailing list