# [R] Help Interpreting Linear Mixed Model

John Kane jrkrideau at inbox.com
Tue Apr 28 03:39:57 CEST 2015

```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

-----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?

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.

-----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

-----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]]
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]]
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]] 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]]
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]]

____________________________________________________________