[R] Help Interpreting Linear Mixed Model

John Kane jrkrideau at inbox.com
Tue Apr 28 23:30:06 CEST 2015


You are posting in HTML and the R-help list is a plain text one. Would you reset to plain in your e-mail editor before posting, please?

 For security reasons R-help strips the HTML version and, we on the list,  receive the resulting plain text.  This, often,  mangles code to the point that it is almost indecipherable.   

Re your question, if I understood it. Something like this should do it
 fm  <-  subset(dat1, Level =="PREMIER_LEAGUE" &  (Position ==  "F" | Position == "m"))

This now gives you a data.frame with only those rows that match your criteria.  
Untested since all 100 rows are CHAMPIONSHIP.  No fPREMIER_LEAGUE in your first 100 rows of data.  I should have warned you about this but it was late and I didn't think through your statement about "The data set I have is quite large".  

Here is an example of how to do some random sampling of your data.frame, which I should have mentioned yesterday

http://stackoverflow.com/questions/8273313/random-rows-in-dataframe-in-r

But in any case the idea is just to subset the data and go from there.  Just type ?subset for help.

##   "Where "F" position are in the same AgeGr as well."

You should be able to add a AgeGr = 99 in the subset statement.

fm  <-  subset(dat1, Level =="PREMIER_LEAGUE" & AgeGr = 10 & (Position ==  "F" | Position == "m"))

should work. Untested and again it's almost dinner time so no guarantees.

I think that there are faster and better ways to do this but this is fairly basic and "relatively' self-documenting.

After that, it depends on what you want to do with the data.

I hope this helps


John Kane
Kingston ON Canada

-----Original Message-----
From: joshuamichaeldixon at gmail.com
Sent: Tue, 28 Apr 2015 21:26:31 +0100
To: jrkrideau at inbox.com
Subject: Re: [R] Help Interpreting Linear Mixed Model

*Edit* 

Where "F" position are in the same AgeGr as well.

Thanks,

Josh

On Tue, Apr 28, 2015 at 9:25 PM, Joshua Dixon <joshuamichaeldixon at gmail.com> wrote:

John -  Lot's of missing data for height unfortunately.  Which is needed for BMI calculation.  

How would I look compare very specific parts of the data, i.e. comparing YoYo outcomes between "F" and "M" position that are both in the PREMIER_LEAGUE Level?

Still can't figure it out!

Josh

On Tue, Apr 28, 2015 at 2:39 AM, John Kane <jrkrideau at inbox.com> wrote:

 Looks great.  How come so many NA's in Height and BMI? Just no data available?

  str(dat1)
 'data.frame':   100 obs. of  8 variables:
  $ Id      : int  7451 148 10393 10200 1961 10428 10541 10012 9895 10626 ...
  $ Level   : Factor w/ 5 levels "CHAMPIONSHIP",..: 1 1 1 1 1 1 1 1 1 1 ...
  $ AgeGr   : int  14 16 10 10 13 10 10 10 10 10 ...
  $ Position: Factor w/ 4 levels "D","F","GK","M": 4 1 1 2 3 3 2 3 1 1 ...
  $ Height  : int  NA NA NA NA NA NA NA NA NA NA ...
  $ Weight  : num  63 64 36 46 67 40 25 30 36 33 ...
  $ BMI     : num  NA NA NA NA NA NA NA NA NA NA ...
  $ YoYo    : int  80 80 160 160 160 160 160 160 160 160 ...

 John Kane
 Kingston ON Canada

 -----Original Message-----
 From: joshuamichaeldixon at gmail.com

Sent: Mon, 27 Apr 2015 23:35:13 +0100
 To: jrkrideau at inbox.com
 Subject: Re: [R] Help Interpreting Linear Mixed Model

 Thanks John!

 This ok?

 > dput(head(data, 100))

 structure(list(Id = c(7451L, 148L, 10393L, 10200L, 1961L, 10428L, 

 10541L, 10012L, 9895L, 10626L, 1151L, 8775L, 10083L, 6217L, 90L, 

 10168L, 10291L, 8549L, 3451L, 10003L, 5907L, 10136L, 6182L, 6315L, 

 10015L, 9956L, 2040L, 4710L, 10747L, 6787L, 1222L, 10757L, 2892L, 

 117L, 10328L, 10503L, 768L, 2979L, 1961L, 10520L, 10498L, 3018L, 

 10335L, 2448L, 9027L, 362L, 8499L, 10603L, 9489L, 2124L, 707L, 

 8501L, 4908L, 9905L, 3000L, 2819L, 9973L, 10550L, 9921L, 10639L, 

 8771L, 10121L, 32L, 9935L, 9299L, 3246L, 682L, 10325L, 6741L, 

 3295L, 5270L, 727L, 8500L, 50L, 4705L, 3018L, 787L, 2953L, 1391L, 

 3682L, 7974L, 5023L, 652L, 727L, 679L, 10212L, 9488L, 9987L, 

 10039L, 5025L, 250L, 2539L, 787L, 3000L, 1151L, 8946L, 6177L, 

 3296L, 250L, 498L), Level = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 

 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 

 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 

 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 

 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 

 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 

 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("CHAMPIONSHIP", 

 "CONFERENCE", "LEAGUE_ONE", "LEAGUE_TWO", "PREMIER_LEAGUE"), class = "factor"), 

     AgeGr = c(14L, 16L, 10L, 10L, 13L, 10L, 10L, 10L, 10L, 10L, 

     14L, 10L, 10L, 10L, 12L, 10L, 10L, 12L, 10L, 10L, 10L, 10L, 

     12L, 10L, 10L, 10L, 10L, 10L, 10L, 15L, 10L, 10L, 10L, 12L, 

     10L, 10L, 13L, 10L, 13L, 11L, 11L, 13L, 12L, 11L, 12L, 14L, 

     13L, 13L, 13L, 13L, 12L, 11L, 15L, 11L, 14L, 13L, 11L, 11L, 

     11L, 12L, 14L, 12L, 13L, 11L, 13L, 15L, 11L, 13L, 13L, 13L, 

     14L, 13L, 13L, 12L, 13L, 13L, 13L, 14L, 12L, 14L, 13L, 13L, 

     13L, 13L, 13L, 12L, 13L, 14L, 13L, 14L, 13L, 14L, 13L, 14L, 

     14L, 13L, 14L, 13L, 13L, 13L), Position = structure(c(4L, 

     1L, 1L, 2L, 3L, 3L, 2L, 3L, 1L, 1L, 1L, 2L, 4L, 3L, 2L, 3L, 

     4L, 3L, 4L, 2L, 4L, 2L, 3L, 1L, 1L, 2L, 4L, 4L, 2L, 4L, 4L, 

     2L, 1L, 4L, 1L, 1L, 2L, 4L, 3L, 1L, 4L, 1L, 2L, 3L, 3L, 1L, 

     1L, 3L, 1L, 3L, 4L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 3L, 1L, 

     2L, 2L, 2L, 4L, 4L, 2L, 4L, 2L, 3L, 3L, 4L, 4L, 1L, 1L, 1L, 

     2L, 2L, 4L, 1L, 1L, 1L, 2L, 4L, 1L, 3L, 4L, 4L, 4L, 4L, 2L, 

     2L, 2L, 1L, 1L, 4L, 1L, 4L, 2L, 2L), .Label = c("D", "F", 

     "GK", "M"), class = "factor"), Height = c(NA, NA, NA, NA, 

     NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 

     NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 

     NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 151L, NA, 

     154L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 156L, NA, 

     147L, NA, NA, NA, NA, NA, 138L, 172L, NA, NA, 150L, NA, NA, 

     NA, NA, NA, NA, NA, 140L, 153L, NA, NA, NA, NA, NA, NA, NA, 

     158L, NA, NA, NA, NA, NA, NA, NA, NA, NA, 156L), Weight = c(63, 

     64, 36, 46, 67, 40, 25, 30, 36, 33, 61, 31, 29, 34, 47, 38, 

     32, 44, 32, 32, 30, 34, 51, 34, 28, 27, 33, 31, 28, 44, 37, 

     46, 26, 42, 32, 32, 43, 31, 72, 27, 30, 55, 53, 50, 51, 55, 

     48.6, 49, 48, 64, 35, 32, 55, 32, 50, 61, 42, 33, 37, 45, 

     45, 50, 36, 33, 49, 59, 42, 43, 35.1, 66.9, 52, 47, 40, 38, 

     45, 53, 44, 54, 39, 62, 33, 53.8, 42, 46, 39, 48, 39, 54, 

     40, 42.4, 50, 48, 46, 52, 58, 40, 46, 51, 54, 42), BMI = c(NA, 

     NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 

     NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 

     NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 

     21.2, NA, 20.24, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 

     NA, 18.49, NA, 16.66, NA, NA, NA, NA, NA, 18.57, 22.61, NA, 

     NA, 17.77, NA, NA, NA, NA, NA, NA, NA, 16.84, 22.86, NA, 

     NA, NA, NA, NA, NA, NA, 16.9, NA, NA, NA, NA, NA, NA, NA, 

     NA, NA, 17.26), YoYo = c(80L, 80L, 160L, 160L, 160L, 160L, 

     160L, 160L, 160L, 160L, 160L, 160L, 160L, 160L, 160L, 160L, 

     160L, 160L, 160L, 160L, 160L, 160L, 160L, 160L, 160L, 160L, 

     160L, 160L, 160L, 160L, 160L, 160L, 160L, 160L, 160L, 160L, 

     160L, 160L, 200L, 200L, 200L, 200L, 200L, 200L, 200L, 200L, 

     200L, 200L, 200L, 200L, 200L, 200L, 200L, 200L, 200L, 200L, 

     200L, 200L, 200L, 200L, 200L, 200L, 200L, 200L, 200L, 200L, 

     200L, 240L, 240L, 240L, 240L, 240L, 240L, 240L, 240L, 240L, 

     240L, 240L, 240L, 240L, 240L, 240L, 240L, 240L, 240L, 240L, 

     240L, 240L, 240L, 240L, 240L, 240L, 240L, 240L, 240L, 240L, 

     240L, 240L, 240L, 240L)), .Names = c("Id", "Level", "AgeGr", 

 "Position", "Height", "Weight", "BMI", "YoYo"), row.names = c(NA, 

 100L), class = "data.frame")

 On Mon, Apr 27, 2015 at 10:43 PM, John Kane <jrkrideau at inbox.com> wrote:

  Hi Josh,

  Just a sample  is usually  fine. As long as it cover a representative (must be time for dinner---I was going to type reprehensibe) sample of the data then something like dput(head(mydata, 100) ) works well.

  Kingston ON Canada

  -----Original Message-----
  From: joshuamichaeldixon at gmail.com

 Sent: Mon, 27 Apr 2015 21:30:39 +0100
  To: lists at dewey.myzen.co.uk
  Subject: Re: [R] Help Interpreting Linear Mixed Model

  Apologies for my ignorance!

  Thierry - thank you for the reading.  I'll look into those ASAP!

  John - The data set I have is quite large, when using the dput() command I'm unsure if it actually fits the whole output into the console.  I can't scroll up far enough to see the actual command.  I can paste what is there if that may help?  The bottom line: 

  Names = c("Id", "Level", "AgeGr", "Position", "Height", "Weight", "BMI", "YoYo"), class = "data.frame", row.names = c(NA, -9689L))

  Michael - Essentially, I'm looking for differences between "YoYo" outcome for "Positions", "Levels" and accounting for repeated measures using "Id" as a random factor.  So I was able to figure out points 2 and 3.

  I've searched for definitions of "Scaled residuals", "Random effects", "Fixed effects", "Correlation of Fixed Effects".  However, I'm confused at the different interpretations I've found.  Or quite possibly, I'm just confused...  What should I be looking out for in these variables?

  I've tried to take my analysis smaller, and just look at specifics, to make it simpler.  Such as, comparing YoYo (outcome score) for a Premier_League (Level), 22 (AgeGr) F (Position) with a Premier_League (Level), 22 (AgeGr) M (Position).  How do I convert these into a factors for analysis?

  Simple question maybe, but it's not when you can't find the answer!

  Thank you,

  Josh

  On Mon, Apr 27, 2015 at 4:10 PM, Michael Dewey <lists at dewey.myzen.co.uk> wrote:

          Dear Joshua

   It would also help if you told us what your scientific question was. At the moment we know what R commands you used and have seen the head of your dataset but not why you are doing it.

   I would summarise what you have given us as

   1 - most ID only occur once
   2 - goal keepers do worse than outfield players
   3 - older people (presumably in fact age is in years as a continuous variable) do better

   On 27/04/2015 12:42, John Kane wrote:

   John Kane
   Kingston ON Canada

           -----Original Message-----
   From: joshuamichaeldixon at gmail.com
   Sent: Mon, 27 Apr 2015 08:54:51 +0100
   To: thierry.onkelinx at inbo.be
   Subject: Re: [R] Help Interpreting Linear Mixed Model

   Hello Thierry,

   No, this isn't homework. Not that young unfortunately.

   A few years ago a friend of mine and her daughter were neck-in-neck on who got their Ph.D first. What's this "not that young" business?

   BTW, a better way to supply sample data is to use the dput() command.

   Do a dput(mydata), copy the results into the email and you have supplied us with an exact copy of your data.

   It is possible for many reasons that I will not read in your data, as you supplied it, in the format you have it in.  This can lead to real confusion.

           Josh

           On 27 Apr 2015, at 08:06, Thierry Onkelinx <thierry.onkelinx at inbo.be>
   wrote:

   Dear Josh,

   Is this homework? Because the list has a no homework policy.

   Best regards,

   ir. Thierry Onkelinx
   Instituut voor natuur- en bosonderzoek / Research Institute for Nature
   and Forest
   team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
   Kliniekstraat 25
   1070 Anderlecht
   Belgium

   To call in the statistician after the experiment is done may be no more
   than asking him to perform a post-mortem examination: he may be able to
   say what the experiment died of. ~ Sir Ronald Aylmer Fisher
   The plural of anecdote is not data. ~ Roger Brinner
   The combination of some data and an aching desire for an answer does not
   ensure that a reasonable answer can be extracted from a given body of
   data. ~ John Tukey

   2015-04-27 2:26 GMT+02:00 Joshua Dixon <joshuamichaeldixon at gmail.com>:

           Hello!

   Very new to R (10 days), and I've run the linear mixed model, below.
   Attempting to interpret what it means...  What do I need to look for?
   Residuals, correlations of fixed effects?!

   How would I look at very specific interactions, such as PREMIER_LEAGUE
   (Level) 18 (AgeGr) GK (Position) mean difference to CHAMPIONSHIP 18
   GK?

   For reference my data set looks like this:

   Id Level AgeGr   Position Height Weight BMI YoYo
   7451 CHAMPIONSHIP 14 M NA 63 NA 80
   148 PREMIER_LEAGUE 16 D NA 64 NA 80
   10393 CONFERENCE 10 D NA 36 NA 160
   10200 CHAMPIONSHIP 10 F NA 46 NA 160
   1961 LEAGUE_TWO 13 GK NA 67 NA 160
   10428 CHAMPIONSHIP 10 GK NA 40 NA 160
   10541 LEAGUE_ONE 10 F NA 25 NA 160
   10012 CHAMPIONSHIP 10 GK NA 30 NA 160
   9895 CHAMPIONSHIP 10 D NA 36 NA 160

   Many thanks in advance for time and help.  Really appreciate it.

   Josh

           summary(lmer(YoYo~AgeGr+Position+(1|Id)))

   Linear mixed model fit by REML ['lmerMod']
   Formula: YoYo ~ AgeGr + Position + (1 | Id)

   REML criterion at convergence: 125712.2

   Scaled residuals:
        Min      1Q  Median      3Q     Max
   -3.4407 -0.5288 -0.0874  0.4531  4.8242

   Random effects:
     Groups   Name        Variance Std.Dev.
     Id       (Intercept) 15300    123.7
     Residual             16530    128.6
   Number of obs: 9609, groups:  Id, 6071

   Fixed effects:
                 Estimate Std. Error t value
   (Intercept) -521.6985    16.8392  -30.98
   AgeGr         62.6786     0.9783   64.07
   PositionD    139.4682     7.8568   17.75
   PositionM    141.2227     7.7072   18.32
   PositionF    135.1241     8.1911   16.50

   Correlation of Fixed Effects:
              (Intr) AgeGr  PostnD PostnM
   AgeGr     -0.910
   PositionD -0.359 -0.009
   PositionM -0.375  0.001  0.810
   PositionF -0.349 -0.003  0.756  0.782

           model=lmer(YoYo~AgeGr+Position+(1|Id))
   summary(glht(model,linfct=mcp(Position="Tukey")))

     Simultaneous Tests for General Linear Hypotheses

   Multiple Comparisons of Means: Tukey Contrasts

   Fit: lmer(formula = YoYo ~ AgeGr + Position + (1 | Id))

   Linear Hypotheses:
                Estimate Std. Error z value Pr(>|z|)
   D - GK == 0  139.468      7.857  17.751   <1e-04 ***
   M - GK == 0  141.223      7.707  18.323   <1e-04 ***
   F - GK == 0  135.124      8.191  16.496   <1e-04 ***
   M - D == 0     1.754      4.799   0.366    0.983
   F - D == 0    -4.344      5.616  -0.774    0.862
   F - M == 0    -6.099      5.267  -1.158    0.645
   ---
   Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
   (Adjusted p values reported -- single-step method)

            [[alternative HTML version deleted]]

   ______________________________________________
   R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see

 https://stat.ethz.ch/mailman/listinfo/r-help [https://stat.ethz.ch/mailman/listinfo/r-help] [https://stat.ethz.ch/mailman/listinfo/r-help [https://stat.ethz.ch/mailman/listinfo/r-help]] [https://stat.ethz.ch/mailman/listinfo/r-help [https://stat.ethz.ch/mailman/listinfo/r-help] [https://stat.ethz.ch/mailman/listinfo/r-help [https://stat.ethz.ch/mailman/listinfo/r-help]]]
   PLEASE do read the posting guide
   http://www.R-project.org/posting-guide.html [http://www.R-project.org/posting-guide.html] [http://www.R-project.org/posting-guide.html [http://www.R-project.org/posting-guide.html]] [http://www.R-project.org/posting-guide.html [http://www.R-project.org/posting-guide.html] [http://www.R-project.org/posting-guide.html [http://www.R-project.org/posting-guide.html]]]
   and provide commented, minimal, self-contained, reproducible code.

           [[alternative HTML version deleted]]

   ______________________________________________
   R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
   https://stat.ethz.ch/mailman/listinfo/r-help [https://stat.ethz.ch/mailman/listinfo/r-help] [https://stat.ethz.ch/mailman/listinfo/r-help [https://stat.ethz.ch/mailman/listinfo/r-help]] [https://stat.ethz.ch/mailman/listinfo/r-help [https://stat.ethz.ch/mailman/listinfo/r-help] [https://stat.ethz.ch/mailman/listinfo/r-help [https://stat.ethz.ch/mailman/listinfo/r-help]]]
   PLEASE do read the posting guide
   http://www.R-project.org/posting-guide.html [http://www.R-project.org/posting-guide.html] [http://www.R-project.org/posting-guide.html [http://www.R-project.org/posting-guide.html]] [http://www.R-project.org/posting-guide.html [http://www.R-project.org/posting-guide.html] [http://www.R-project.org/posting-guide.html [http://www.R-project.org/posting-guide.html]]]
   and provide commented, minimal, self-contained, reproducible code.

   ____________________________________________________________
   FREE ONLINE PHOTOSHARING - Share your photos online with your friends and family!
   Visit http://www.inbox.com/photosharing [http://www.inbox.com/photosharing] [http://www.inbox.com/photosharing [http://www.inbox.com/photosharing]] [http://www.inbox.com/photosharing [http://www.inbox.com/photosharing] [http://www.inbox.com/photosharing [http://www.inbox.com/photosharing]]] to find out more!

   ______________________________________________
   R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
   https://stat.ethz.ch/mailman/listinfo/r-help [https://stat.ethz.ch/mailman/listinfo/r-help] [https://stat.ethz.ch/mailman/listinfo/r-help [https://stat.ethz.ch/mailman/listinfo/r-help]] [https://stat.ethz.ch/mailman/listinfo/r-help [https://stat.ethz.ch/mailman/listinfo/r-help] [https://stat.ethz.ch/mailman/listinfo/r-help [https://stat.ethz.ch/mailman/listinfo/r-help]]]
   PLEASE do read the posting guide http://www.R-project.org/posting-guide.html [http://www.R-project.org/posting-guide.html] [http://www.R-project.org/posting-guide.html [http://www.R-project.org/posting-guide.html]] [http://www.R-project.org/posting-guide.html [http://www.R-project.org/posting-guide.html] [http://www.R-project.org/posting-guide.html [http://www.R-project.org/posting-guide.html]]]
   and provide commented, minimal, self-contained, reproducible code.

   --
   Michael
   http://www.dewey.myzen.co.uk/home.html [http://www.dewey.myzen.co.uk/home.html] [http://www.dewey.myzen.co.uk/home.html [http://www.dewey.myzen.co.uk/home.html]] [http://www.dewey.myzen.co.uk/home.html [http://www.dewey.myzen.co.uk/home.html] [http://www.dewey.myzen.co.uk/home.html [http://www.dewey.myzen.co.uk/home.html]]]

  ____________________________________________________________
  Can't remember your password? Do you need a strong and secure password?
  Use Password manager! It stores your passwords & protects your account.
  Check it out at http://mysecurelogon.com/manager [http://mysecurelogon.com/manager] [http://mysecurelogon.com/manager [http://mysecurelogon.com/manager]]

 ____________________________________________________________
 FREE 3D EARTH SCREENSAVER - Watch the Earth right on your desktop!
 Check it out at http://www.inbox.com/earth [http://www.inbox.com/earth]

____________________________________________________________
FREE 3D EARTH SCREENSAVER - Watch the Earth right on your desktop!



More information about the R-help mailing list