Data
So there are a number of questions in your question, and given that your data isn't on hand, I will use my own toy dataset to answer your question. First, the dput of my data in case you want to check yourself:
work <- structure(list(Work_Environment = c("Office", "Office", "Office",
"Home", "Home", "Office", "Office", "Office", "Office", "Office",
"Home", "Home", "Office", "Office", "Office", "Home", "Office",
"Home", "Home", "Office", "Office", "Home", "Office", "Home",
"Home", "Home", "Office", "Office", "Office", "Office", "Home",
"Home", "Home", "Office", "Office", "Office", "Office", "Office",
"Home", "Home", "Office", "Office", "Home", "Home", "Office",
"Home", "Home", "Office", "Office", "Home", "Home", "Office",
"Home", "Home", "Office", "Office", "Home", "Office", "Home",
"Home", "Home", "Home", "Office", "Home", "Office", "Office",
"Home", "Home", "Office", "Office", "Home", "Home", "Office",
"Office", "Home", "Office", "Office", "Home", "Office", "Office",
"Home", "Home", "Office", "Office", "Home", "Home", "Office",
"Home", "Home", "Office", "Office", "Home", "Office", "Office",
"Home", "Home", "Office", "Home", "Home", "Home", "Home", "Home",
"Home", "Office", "Home", "Office", "Office", "Home", "Home",
"Home", "Office", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Office", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Office", "Home", "Office", "Home", "Office",
"Office", "Office", "Office", "Home", "Home", "Home", "Home",
"Office", "Home", "Office", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Office", "Office", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Office", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Office", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Office", "Office", "Office",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Office", "Office", "Home", "Home",
"Office", "Office", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home",
"Home", "Home", "Home", "Home", "Home", "Office", "Office", "Office",
"Home", "Office", "Home", "Home", "Home", "Home"), Coffee_Cups = c(3L,
0L, 2L, 6L, 4L, 5L, 3L, 3L, 2L, 2L, 3L, 1L, 1L, 3L, 2L, 2L, 0L,
1L, 1L, 4L, 4L, 3L, 0L, 1L, 3L, 0L, 0L, 0L, 0L, 2L, 0L, 1L, 2L,
3L, 2L, 2L, 4L, 3L, 6L, 6L, 3L, 4L, 6L, 8L, 3L, 5L, 0L, 2L, 2L,
8L, 6L, 4L, 6L, 4L, 4L, 2L, 6L, 6L, 5L, 1L, 3L, 1L, 5L, 4L, 6L,
5L, 0L, 6L, 6L, 4L, 4L, 2L, 2L, 6L, 6L, 7L, 3L, 3L, 0L, 5L, 7L,
6L, 3L, 5L, 3L, 3L, 1L, 9L, 9L, 3L, 3L, 6L, 6L, 6L, 3L, 0L, 7L,
6L, 6L, 3L, 9L, 3L, 8L, 8L, 3L, 3L, 7L, 6L, 3L, 3L, 3L, 6L, 6L,
6L, 1L, 9L, 3L, 3L, 2L, 6L, 3L, 6L, 9L, 6L, 8L, 9L, 6L, 6L, 6L,
0L, 3L, 0L, 3L, 3L, 6L, 3L, 0L, 9L, 3L, 0L, 2L, 0L, 6L, 6L, 6L,
3L, 6L, 3L, 9L, 3L, 0L, 0L, 6L, 3L, 3L, 3L, 3L, 6L, 0L, 6L, 3L,
3L, 5L, 5L, 3L, 0L, 6L, 4L, 2L, 0L, 2L, 4L, 0L, 6L, 4L, 4L, 2L,
2L, 0L, 9L, 6L, 3L, 6L, 6L, 9L, 0L, 6L, 6L, 6L, 6L, 6L, 6L, 3L,
3L, 0L, 9L, 6L, 3L, 6L, 3L, 6L, 1L, 6L, 6L, 6L, 6L, 6L, 1L, 3L,
9L, 6L, 3L, 6L, 9L, 3L, 5L, 6L, 3L, 0L, 6L, 3L, 3L, 5L, 0L, 6L,
3L, 5L, 3L, 0L, 6L, 7L, 3L, 6L, 6L, 6L, 6L, 3L, 5L, 6L, 7L, 6L,
6L, 4L, 6L, 4L, 5L, 5L, 6L, NA, 8L, 6L, 6L, 6L, 9L, 3L, 3L, 9L,
7L, 8L, 4L, 3L, 3L, 3L, 6L, 6L, 6L, 3L, 4L, 3L, 3L, 6L, 4L, 3L,
3L, 4L, 6L, 0L, 3L, 6L, 4L, 3L, 3L, 7L, 4L, 4L, 3L, 1L, 6L, 4L,
6L, 5L, 3L, 6L, 6L, 3L, 6L, 3L, 5L, 6L, 6L, 3L, 6L, 4L, 9L, 7L,
6L, 3L, 3L, 3L, 4L, 6L, 3L, 6L, 3L, 4L, 4L, 3L, 5L, 5L, 5L, 0L,
6L, 4L, 5L, 6L, 4L, 1L, 6L, 3L, 6L, 6L, 2L, 5L, 5L, 6L, 5L, 4L,
5L, 4L, 6L, 5L, 0L, 3L, 4L, 4L, 1L, 4L, 3L, 5L, 8L, 1L, 4L, 4L,
2L, 2L, 3L, 3L, 5L, 3L, 4L, 3L, 3L, 3L, 3L, 3L, 2L, 1L, 4L, 3L,
5L, 4L, 7L, 5L, 2L, 4L, 1L, 5L, 3L), Time_Wake = c(500L, 715L,
600L, 600L, 700L, 600L, 700L, 500L, 500L, 500L, 500L, 700L, 645L,
700L, 630L, 645L, 700L, 600L, 700L, 550L, 700L, 730L, 725L, 800L,
600L, 640L, 600L, 730L, 650L, 830L, 630L, 630L, 830L, 722L, 641L,
800L, 720L, 700L, NA, NA, NA, 700L, 700L, 622L, 710L, 632L, 400L,
640L, 700L, 730L, 830L, 659L, 800L, 701L, 700L, 900L, 930L, 650L,
930L, NA, 700L, 300L, 830L, 800L, 705L, 647L, 800L, NA, 830L,
NA, 830L, 838L, 650L, 849L, 500L, 830L, 800L, 321L, 700L, 400L,
400L, NA, 700L, 600L, 604L, 700L, 730L, 700L, 700L, 500L, 700L,
630L, 500L, 600L, 700L, 600L, 830L, 600L, 500L, 600L, 738L, 758L,
645L, 702L, NA, 500L, 849L, 656L, 831L, 700L, 700L, 805L, 834L,
849L, 407L, 739L, NA, 717L, 852L, 826L, 446L, 919L, 842L, 754L,
900L, NA, 845L, 900L, 848L, 757L, 927L, 500L, 700L, 430L, 430L,
NA, 600L, NA, 452L, 700L, NA, 300L, 600L, 600L, 400L, 945L, 500L,
700L, 700L, 700L, 504L, 700L, 700L, 400L, 747L, NA, 200L, 740L,
441L, 833L, 815L, 400L, 600L, 600L, 700L, 344L, NA, 636L, 600L,
NA, 300L, 600L, 600L, 700L, NA, 822L, 360L, 600L, 945L, NA, 656L,
400L, 700L, 744L, 710L, 600L, NA, 700L, 700L, 700L, 253L, 600L,
819L, 700L, 600L, 655L, 835L, 848L, 654L, 630L, 745L, 300L, 730L,
700L, 700L, 700L, 700L, NA, 200L, 700L, 500L, NA, 500L, 700L,
700L, 730L, 700L, 830L, 825L, 700L, 600L, 700L, 700L, NA, 700L,
700L, 700L, 700L, 700L, 700L, 300L, 500L, 700L, 705L, NA, 700L,
723L, 531L, 841L, 845L, 744L, 742L, 830L, 648L, NA, 630L, 645L,
634L, 727L, 603L, 648L, 721L, 647L, 842L, 750L, 650L, NA, 645L,
645L, 751L, 130L, 729L, NA, 830L, 730L, 727L, 709L, 641L, NA,
709L, 710L, 621L, 747L, 720L, 628L, 654L, NA, 633L, 548L, 428L,
700L, 733L, 700L, 556L, 757L, 815L, 735L, NA, 500L, 707L, 751L,
601L, 500L, NA, NA, 600L, 800L, 607L, 557L, 723L, 718L, 630L,
400L, 633L, 550L, 607L, 621L, 640L, 636L, 559L, 417L, 701L, 100L,
640L, 629L, 614L, 545L, 615L, 550L, 755L, NA, 737L, 725L, 613L,
713L, 555L, 746L, 634L, 651L, 701L, NA, NA, 810L, 646L, 442L,
NA, 641L, 642L, 700L, 525L, 332L, 743L, 703L, 718L, 625L, NA,
618L, NA, NA, 400L, 329L, 748L, 700L, 720L, 602L, 727L, 842L,
842L, 400L, NA, 704L, 808L, 632L, 746L, 405L, NA, 559L, 649L,
639L, 709L, 720L, 349L, 650L, 630L, NA, NA, 630L, NA), Mins_Work = c(435L,
350L, 145L, 135L, 15L, 60L, 60L, 390L, 395L, 395L, 315L, 80L,
580L, 175L, 545L, 230L, 435L, 370L, 255L, 515L, 330L, 65L, 115L,
550L, 420L, 45L, 266L, 196L, 198L, 220L, 17L, 382L, 0L, 180L,
343L, 207L, 263L, 332L, 0L, 0L, 259L, 417L, 282L, 685L, 517L,
111L, 64L, 466L, 499L, 460L, 269L, 300L, 427L, 301L, 436L, 342L,
229L, 379L, 102L, 146L, NA, 94L, 345L, 73L, 204L, 512L, 113L,
135L, 458L, 493L, 552L, 108L, 335L, 395L, 508L, 546L, 396L, 159L,
325L, 747L, 650L, 377L, 461L, 669L, 186L, 220L, 410L, 708L, 409L,
515L, 413L, 166L, 451L, 660L, 177L, 192L, 191L, 461L, 637L, 297L,
601L, 586L, 270L, 479L, 0L, 480L, 397L, 174L, 111L, 0L, 610L,
332L, 345L, 423L, 160L, 611L, 0L, 345L, 550L, 324L, 427L, 505L,
632L, 560L, 230L, 495L, 235L, 522L, 654L, 465L, 377L, 260L, 572L,
612L, 594L, 624L, 237L, 0L, 38L, 409L, 634L, 292L, 706L, 399L,
568L, 0L, 694L, 298L, 616L, 553L, 581L, 423L, 636L, 623L, 338L,
345L, 521L, 438L, 504L, 600L, 616L, 656L, 285L, 474L, 688L, 278L,
383L, 535L, 363L, 470L, 457L, 303L, 123L, 363L, 329L, 513L, 636L,
421L, 220L, 430L, 428L, 536L, 156L, 615L, 429L, 103L, 332L, 250L,
281L, 248L, 435L, 589L, 515L, 158L, 0L, 649L, 427L, 193L, 225L,
0L, 280L, 163L, 536L, 301L, 406L, 230L, 519L, 0L, 303L, 472L,
392L, 326L, 368L, 405L, 515L, 308L, 259L, 769L, 93L, 517L, 261L,
420L, 248L, 265L, 834L, 313L, 131L, 298L, 134L, 385L, 648L, 529L,
487L, 533L, 641L, 429L, 339L, 508L, 560L, 439L, 381L, 397L, 692L,
534L, 148L, 366L, 167L, 425L, 315L, 476L, 384L, 498L, 502L, 308L,
360L, 203L, 410L, 626L, 593L, 409L, 531L, 157L, 0L, 357L, 443L,
615L, 564L, 341L, 352L, 609L, 686L, 386L, 323L, 362L, 597L, 325L,
51L, 570L, 579L, 284L, 0L, 530L, 171L, 640L, 263L, 112L, 217L,
152L, 203L, 394L, 135L, 234L, 507L, 224L, 174L, 210L, 138L, 52L,
326L, 413L, 695L, 370L, 256L, 327L, 490L, 128L, 469L, 567L, 359L,
561L, 478L, 233L, 550L, 390L, 406L, 56L, 47L, 258L, 332L, 114L,
193L, 435L, 493L, 659L, 93L, 86L, 0L, 228L, 232L, 318L, 295L,
639L, 367L, 313L, 253L, 433L, 399L, 269L, 446L, 407L, 424L, 410L,
309L, 364L, 700L, 345L, 274L, 113L, 202L, 553L, 157L, 351L, 303L,
392L, 539L, 337L, 297L, 479L, 311L, 173L, 94L, 170L, 469L, 180L,
311L, 106L, 521L, 378L, 61L, 462L, 644L, 310L, 533L, 517L, 136L,
0L, 392L, NA)), class = "data.frame", row.names = c(NA, -378L
))
The data in my model consists of two predictors: Coffee_Cups, which are how many coffee cups were consumed that day, and Time_Wake, which is the time of waking up that day. Work_Environment here was selected as a random effect with two levels to emulate what you did, but below I express that this isn't a wise choice. The expected outcome or y in this model is Mins_Work, or how many minutes of productivity were recorded that day. You can see the structure of the data with this code:
work %>%
select(Work_Environment,
Coffee_Cups,
Time_Wake,
Mins_Work) %>%
glimpse()
As seen here:
Rows: 378
Columns: 4
$ Work_Environment <chr> "Office", "Office", "Office", "Home", "Home", …
$ Coffee_Cups <int> 3, 0, 2, 6, 4, 5, 3, 3, 2, 2, 3, 1, 1, 3, 2, 2…
$ Time_Wake <int> 500, 715, 600, 600, 700, 600, 700, 500, 500, 5…
$ Mins_Work <int> 435, 350, 145, 135, 15, 60, 60, 390, 395, 395,…
Observing Missing Values
It's not clear if you have missing values in your data, as the summary output from your lmer summary doesn't appear to have the portion that states how many observations there were. That said, you can check your missing data fairly easily in R. I have checked both of my fixed effect predictors here:
#### Check NA Values ###
work %>%
select(Mins_Work) %>%
is.na() %>%
table() # 2 NA values
work %>%
select(Time_Wake) %>%
is.na() %>%
table() # 43 NA values
Then I checked what the total observations are in my data.
nrow(work) # 378 observations
Since there are only 378 observations and 45 missing, we should have 333 values observed by the lmer model. Here I have built my lmer model below:
hlm.work <- lmer(Mins_Work
~ Coffee_Cups
+ Time_Wake
+ (1|Work_Environment),
data = work)
summary(hlm.work)
As can be seen, the model retained only the 333 observations in the "Random effects" section in the output:
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: Mins_Work ~ Coffee_Cups + Time_Wake + (1 | Work_Environment)
Data: work
REML criterion at convergence: 4338.3
Scaled residuals:
Min 1Q Median 3Q Max
-2.51991 -0.70343 -0.01399 0.73630 2.93450
Random effects:
Groups Name Variance Std.Dev.
Work_Environment (Intercept) 4289 65.49
Residual 27230 165.01
Number of obs: 333, groups: Work_Environment, 2
Fixed effects:
Estimate Std. Error df t value Pr(>|t|)
(Intercept) 400.69391 64.43207 3.34404 6.219 0.00604 **
Coffee_Cups 28.71402 4.14095 329.56783 6.934 2.16e-11 ***
Time_Wake -0.18917 0.06431 329.14364 -2.942 0.00350 **
Signif. codes: 0 ‘*’ 0.001 ‘’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) Cff_Cp
Coffee_Cups -0.172
Time_Wake -0.626 -0.124
Multicollinearity
The VIF in your model can be quickly observed with the performance package. The code can be seen below:
library(performance)
check_collinearity(hlm.work)
Which shows our VIF isn't high enough to warrant concern:
# Check for Multicollinearity
Low Correlation
Term VIF VIF 95% CI Increased SE Tolerance Tolerance 95% CI
Coffee_Cups 1.02 [1.00, 17.58] 1.01 0.98 [0.06, 1.00]
Time_Wake 1.02 [1.00, 17.58] 1.01 0.98 [0.06, 1.00]
Appropriateness of Model
As to your question about the suitability of your model, there is nothing wrong specified from what I can see, but as some others have noted, you may have too few random effects to warrant their inclusion into this model. You may want to either consider a fixed effect regression or if there are other random effects you think contribute to "noise" that have enough levels, you can include them instead.