拓端tecdat|R語言LME4混合效應模型研究教師的受歡迎程度


 

原文鏈接:http://tecdat.cn/?p=11724

 


介紹

本教程對多級回歸進行了基本介紹 。  

 

本教程期望:

  • 多級分析的基礎知識 。
  • R中編碼的基礎知識。
  • 安裝R軟件包  lme4,和  lmerTest。 

 

步驟1:設定 

如果尚未安裝所有下面提到的軟件包,則可以通過命令安裝它們  install.packages("NAMEOFPACKAGE")

library(lme4) # for the analysis
library(haven) # to load the SPSS .sav file
library(tidyverse) # needed for data manipulation.
library(RColorBrewer) # needed for some extra colours in one of the graphs
library(lmerTest)# to get p-value estimations that are not part of the standard lme4 packages

受歡迎程度數據集包含不同班級學生的特征。本教程的主要目的是找到模型和檢驗關於這些特征與學生受歡迎程度(根據其同學)之間的關系的假設。 我們將使用.sav文件,該文件可以在SPSS文件夾中找到。將數據下載到工作目錄后,可以使用read_sav() 命令將其打開  。

GitHub是一個平台,允許研究人員和開發人員共享代碼,軟件和研究成果,並在項目上進行協作。

數據清理

數據集中有一些我們不使用的變量,因此我們可以選擇將要使用的變量,並查看前幾個觀察值。

popular2data <- select(popular2data, pupil, class, extrav, sex, texp, popular) # we select just the variables we will use
head(popular2data) # we have a look at the first 6 observations
## # A tibble: 6 x 6
##   pupil class extrav       sex  texp popular
##   <dbl> <dbl>  <dbl> <dbl+lbl> <dbl>   <dbl>
## 1     1     1      5  1 [girl]    24     6.3
## 2     2     1      7  0 [boy]     24     4.9
## 3     3     1      4  1 [girl]    24     5.3
## 4     4     1      3  1 [girl]    24     4.7
## 5     5     1      5  1 [girl]    24     6  
## 6     6     1      4  0 [boy]     24     4.7

步驟3:繪制數據

在開始分析之前,我們可以繪制外向性和流行度之間的關系,而無需考慮數據的多級結構。

ggplot(data  = popular2data,
       aes(x = extrav,
           y = popular))+
  geom_point(size = 1.2,
             alpha = .8,
             position = "jitter")+# to add some random noise for plotting purposes
  theme_minimal()+
  labs(title = "Popularity vs. Extraversion")


現在我們可以向該圖添加回歸線。


到目前為止,我們已經忽略了數據的嵌套多層結構。我們可以通過對不同類進行顏色編碼來顯示這種多級結構。


現在我們可以為數據中的100個不同類別繪制不同的回歸線


我們清楚地看到,外向性和受歡迎程度之間的關系在所有階層中並不相同,但平均而言,存在明顯的正向關系。在本教程中,我們將顯示這些不同斜率的估計值(以及如何解釋這些差異)。 
我們還可以對最極端的回歸線進行顏色編碼。

現在我們可以在人氣數據上使用此功能。

f1(data = as.data.frame(popular2data), 
   x    = "extrav",
   y    = "popular",
   grouping = "class",
   n.highest = 3, 
   n.lowest = 3) %>%
  ggplot()+
  geom_point(aes(x     = extrav,
                 y     = popular, 
                 fill  = class, 
                 group = class),
             size     =  1, 
             alpha    = .5, 
             position = "jitter", 
             shape    = 21, 
             col      = "white")+
  geom_smooth(aes(x     = extrav,
                  y     = popular,
                  col   = high_and_low,
                  group = class,
                  size  = as.factor(high_and_low),
                  alpha = as.factor(high_and_low)),
              method = lm,
              se     = FALSE)+
  theme_minimal()+
  theme(legend.position = "none")+
  scale_fill_gradientn(colours = rainbow(100))+
  scale_color_manual(values=c("top"      = "blue",
                              "bottom"   = "red",
                              "none"     = "grey40"))+
  scale_size_manual(values=c("top"       = 1.2,
                              "bottom"   = 1.2,
                              "none"     = .5))+
  scale_alpha_manual(values=c("top"      = 1,
                             "bottom"    = 1,
                             "none"      =.3))+
  labs(title="Linear Relationship Between Popularity and Extraversion for 100 Classes",
       subtitle="The 6 with the most extreme relationship have been highlighted red and blue")

 

步驟4:分析數據

僅截距模型

我們復制的第一個模型是僅截距模型。

如果我們查看LMER函數的不同輸入,則:

  1.  “流行”,表示我們要預測的因變量。
  2. 一個“〜”,用於表示我們現在給出了其他感興趣的變量。(與回歸方程式的'='相比)。
  3. 公式中表示截距的“ 1”。
  4. 由於這是僅截距模式,因此我們在這里沒有任何其他自變量。
  5. 在方括號之間,我們具有隨機效果/斜率。同樣,值1表示垂直“ |”的截距和變量右側 條用於指示分組變量。在這種情況下,類ID。因此,因變量“流行”是由截距和該截距的隨機誤差項預測的。
  6. 最后,我們在data = 命令后指定要使用的數據集 

 

summary(interceptonlymodel) #to get paramater estimates.
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]

##    Data: popular2data
## 
## REML criterion at convergence: 6330.5
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.5655 -0.6975  0.0020  0.6758  3.3175 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  class    (Intercept) 0.7021   0.8379  
##  Residual             1.2218   1.1053  
## Number of obs: 2000, groups:  class, 100
## 
## Fixed effects:
##             Estimate Std. Error       df t value Pr(>|t|)    
## (Intercept)  5.07786    0.08739 98.90973    58.1   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

如果查看匯總輸出,則在“隨機效應”下可以看到,類別級別0.7021上的殘差和第一級別(學生級別)上的殘差為1.2218。這意味着類內相關性(ICC)為0.7021 /(1.2218 + 0.7021)=。36。
在“固定效果”下,報告截距的估計值為5.078。
我們還可以輸出計算ICC。

## # Intraclass Correlation Coefficient
## 
##      Adjusted ICC: 0.365
##   Conditional ICC: 0.365

一級預測變量

現在我們可以首先添加第一(學生)水平的預測變量。一級預測因子是性別和外向性。現在,我們僅將它們添加為固定效果,而不添加為隨機斜率。在此之前,我們可以繪制兩種性別在效果上的差異。我們發現性別之間可能存在平均差異,但斜率(回歸系數)沒有差異。

 


summary(model1)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
##    Data: popular2data
## 
## REML criterion at convergence: 4948.3
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.2091 -0.6575 -0.0044  0.6732  2.9755 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  class    (Intercept) 0.6272   0.7919  
##  Residual             0.5921   0.7695  
## Number of obs: 2000, groups:  class, 100
## 
## Fixed effects:
##              Estimate Std. Error        df t value Pr(>|t|)    
## (Intercept) 2.141e+00  1.173e-01 3.908e+02   18.25   <2e-16 ***
## sex         1.253e+00  3.743e-02 1.927e+03   33.48   <2e-16 ***
## extrav      4.416e-01  1.616e-02 1.957e+03   27.33   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##        (Intr) sex   
## sex    -0.100       
## extrav -0.705 -0.085

默認情況下,lmer函數僅提供測試統計信息和估計值,而不提供p值。但是,因為我們使用,所以  lmerTest package 確實獲得了P值。現在的截距為2.14,性別的回歸系數為1.25,外向回歸系數為0.44。在輸出的固定效果表的最后一列中,我們看到了P值,這些值表示所有回歸系數均與0顯着不同。 

一級和二級預測變量

現在,我們(除了均重要的1級變量)還在第二級(教師經驗)添加了預測變量。

## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
##    Data: popular2data
## 
## REML criterion at convergence: 4885
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.1745 -0.6491 -0.0075  0.6705  3.0078 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  class    (Intercept) 0.2954   0.5435  
##  Residual             0.5920   0.7694  
## Number of obs: 2000, groups:  class, 100
## 
## Fixed effects:
##              Estimate Std. Error        df t value Pr(>|t|)    
## (Intercept) 8.098e-01  1.700e-01 2.264e+02   4.764  3.4e-06 ***
## sex         1.254e+00  3.729e-02 1.948e+03  33.623  < 2e-16 ***
## extrav      4.544e-01  1.616e-02 1.955e+03  28.112  < 2e-16 ***
## texp        8.841e-02  8.764e-03 1.016e+02  10.087  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##        (Intr) sex    extrav
## sex    -0.040              
## extrav -0.589 -0.090       
## texp   -0.802 -0.036  0.139

結果表明,級別1和級別2變量均顯着。但是,我們尚未為任何變量添加隨機斜率 。
現在,我們還可以與基礎模型相比,計算出第1級和第2級的解釋方差。

  • 對於級別1,這是(1.2218 – 0.592)/1.2218 = 0.52
  • 對於2級,這是(0.7021 – 0.2954)/0.7021 = 0.58

具有隨機斜率的一級和二級預測器(1)

現在我們還想包括隨機斜率。在表2.1的第三欄中,第1級的兩個預測變量(性別和外向性)均具有隨機斜率。要在LMER中完成此操作,只需將我們要為其添加隨機斜率的變量添加到輸入的隨機部分。這意味着  (1|class)成為  (1+sex+extrav |class)

## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl =
## control$checkConv, : Model failed to converge with max|grad| = 0.026373
## (tol = 0.002, component 1)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
##    Data: popular2data
## 
## REML criterion at convergence: 4833.3
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.1643 -0.6555 -0.0247  0.6711  2.9571 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev. Corr       
##  class    (Intercept) 1.341820 1.15837             
##           sex         0.002395 0.04894  -0.39      
##           extrav      0.034738 0.18638  -0.88 -0.10
##  Residual             0.551448 0.74260             
## Number of obs: 2000, groups:  class, 100
## 
## Fixed effects:
##              Estimate Std. Error        df t value Pr(>|t|)    
## (Intercept) 7.585e-01  1.973e-01 1.811e+02   3.845 0.000167 ***
## sex         1.251e+00  3.694e-02 9.862e+02  33.860  < 2e-16 ***
## extrav      4.529e-01  2.464e-02 9.620e+01  18.375  < 2e-16 ***
## texp        8.952e-02  8.617e-03 1.014e+02  10.389  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##        (Intr) sex    extrav
## sex    -0.062              
## extrav -0.718 -0.066       
## texp   -0.684 -0.039  0.089
## convergence code: 0
## Model failed to converge with max|grad| = 0.026373 (tol = 0.002, component 1)

我們可以看到所有固定的回歸斜率仍然很顯着。然而,沒有給出對隨機效應的顯着性檢驗,但是我們確實看到,可變性別的斜率的誤差項(方差)估計很小(0.0024)。這可能意味着類別之間的SEX變量沒有斜率變化,因此可以從下一次分析中刪除隨機斜率估計。由於沒有針對此方差的直接顯着性檢驗,我們可以使用 軟件包的  ranova() 功能  lmerTest,這將為我們提供類似於ANOVA的隨機效果表。它檢查如果刪除了某種隨機效應(正式稱為似然比檢驗),則模型是否變得明顯更差,如果不是這種情況,則隨機效應不顯着。

ranova(model3)
## ANOVA-like table for random-effects: Single term deletions
## 
## Model:
##                                      npar  logLik    AIC    LRT Df
## <none>                                 11 -2416.6 4855.3          
## sex in (1 + sex + extrav | class)       8 -2417.4 4850.8  1.513  3
## extrav in (1 + sex + extrav | class)    8 -2441.9 4899.8 50.506  3
##                                      Pr(>Chisq)    
## <none>                                             
## sex in (1 + sex + extrav | class)        0.6792    
## extrav in (1 + sex + extrav | class)  6.232e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

我們看到性別的隨機影響確實不顯着(P = 0.6792),性外向的隨機影響也很顯着(P <.0001)。

具有隨機斜率的一級和二級預測器 

我們在忽略性別的隨機斜率之后繼續。

## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
##    Data: popular2data
## 
## REML criterion at convergence: 4834.8
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.1768 -0.6475 -0.0235  0.6648  2.9684 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev. Corr 
##  class    (Intercept) 1.30296  1.1415        
##           extrav      0.03455  0.1859   -0.89
##  Residual             0.55209  0.7430        
## Number of obs: 2000, groups:  class, 100
## 
## Fixed effects:
##              Estimate Std. Error        df t value Pr(>|t|)    
## (Intercept) 7.362e-01  1.966e-01 1.821e+02   3.745 0.000242 ***
## sex         1.252e+00  3.657e-02 1.913e+03  34.240  < 2e-16 ***
## extrav      4.526e-01  2.461e-02 9.754e+01  18.389  < 2e-16 ***
## texp        9.098e-02  8.685e-03 1.017e+02  10.475  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##        (Intr) sex    extrav
## sex    -0.031              
## extrav -0.717 -0.057       
## texp   -0.688 -0.039  0.086

我們看到:

  • 截距是0.736
  • 性別的固定影響是1.252
  • 老師經驗的影響是0.091
  • 外向性的平均影響為0.453
  • 外傾斜率的隨機效應為0.035
  • 一級殘差為0.552
  • 第二級的殘差為1.303

 

具有隨機斜率和跨水平交互作用的一級和二級預測 

作為最后一步,我們可以在教師的經驗和外向性之間添加跨層次的交互作用(因為這具有很大的隨機效應,我們也許可以解釋)。換句話說,我們要調查的是,班上外向性與受歡迎程度之間關系的差異是否可以由該班老師的老師經驗來解釋。 我們添加了Extraversion和Teacher體驗之間的 層次交互。這意味着我們必須添加TEXP作為EXTRAV系數的預測因子。外向性和教師經驗之間的跨層次交互作用術語可以通過“:”符號或乘以術語來創建。
如果將所有這些都以公式形式表示,則得到:

流行度ij =β0j+β1* genderij +β2j* extraversionij + eij流行度ij =β0j+β1* genderij +β2j* extraversionij + eij。
其中β0j=γ00+γ01∗ experiencej +u0jβ0j=γ00+γ01∗ experiencej + u0j和β2j=γ20+γ21∗ experiencej +u2jβ2j=γ20+γ21∗ experiencej + u2j
合並得到:

 

流行度ij =γ00+γ10∗ sexij +γ20∗ extraversionij +γ01∗經驗j +γ21∗ extraversionij ∗經驗j + u2j ∗ extraversionij + u0j + eij流行度ij =γ00+γ10∗ sexij +γ20∗ extraversionij +γ01∗經驗j +γ21∗ extraij u2j * extraversionij + u0j + eij

## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
##    Data: popular2data
## 
## REML criterion at convergence: 4780.5
## 
## Scaled residuals: 
##      Min       1Q   Median       3Q      Max 
## -3.12872 -0.63857 -0.01129  0.67916  3.05006 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev. Corr 
##  class    (Intercept) 0.478639 0.69184       
##           extrav      0.005409 0.07355  -0.64
##  Residual             0.552769 0.74348       
## Number of obs: 2000, groups:  class, 100
## 
## Fixed effects:
##               Estimate Std. Error         df t value Pr(>|t|)    
## (Intercept) -1.210e+00  2.719e-01  1.093e+02  -4.449 2.09e-05 ***
## sex          1.241e+00  3.623e-02  1.941e+03  34.243  < 2e-16 ***
## extrav       8.036e-01  4.012e-02  7.207e+01  20.031  < 2e-16 ***
## texp         2.262e-01  1.681e-02  9.851e+01  13.458  < 2e-16 ***
## extrav:texp -2.473e-02  2.555e-03  7.199e+01  -9.679 1.15e-14 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr) sex    extrav texp  
## sex          0.002                     
## extrav      -0.867 -0.065              
## texp        -0.916 -0.047  0.801       
## extrav:texp  0.773  0.033 -0.901 -0.859

交互項用extrav:texp 下標  表示,  Fixed effects 並估計為-0.025。
從這些結果中,我們現在還可以通過使用教師經驗作為第二級變量來計算解釋的外傾斜率方差:(0.03455-0.005409)/0.03455 = .843(這些結果與本書和HLM略有不同,即因為使用了不同的估算和舍入方法)。因此,外傾斜率回歸系數的方差的84.3%可以由老師的經驗來解釋。
外推系數在受歡迎程度上的截距和斜率均受教師經驗的影響。一名具有0年經驗的老師的班級中,外向得分為0的男學生(SEX = 0)的預期受歡迎度為-1.2096(這些值當然是不可能的,居中是防止這些無法實現的結果的好策略)。一名類似的(男)學生,每增加1分外向度,就將獲得0.8036分,以提高其知名度。當教師經驗增加時,每年經驗的截距也增加0.226。因此,同一個沒有外向性的男學生與一個有15年經驗的老師一起上課,其預期受歡迎度得分為-1.2096 +(15 x .226)= 2.1804。教師的經驗也減輕了外向性對普及的影響。對於具有15年經驗的教師,外向度的回歸系數僅為0.8036 –(15 x .0247)= 0.4331(相比之下,具有0年經驗的教師班級為0.8036)。
我們還可以清楚地看到,多年的教師經驗既影響截距,又影響外向度的回歸系數。

  

最后

在本教程結束時,我們將檢查模型的殘差是否正態分布(在兩個級別上)。除了殘差是正態分布的之外,多級模型還假設,對於不同的隨機效應,殘差的方差在組(類)之間是相等的。確實存在跨組的正態性和方差相等性的統計檢驗,但是本教程僅限於視覺檢查。

 

首先,我們可以通過比較殘差和擬合項來檢查均方差。


我們還可以使用QQ圖檢查殘差的正態性。該圖確實表明殘差是正態分布的。

 

 

現在,我們還可以檢查它是否具有100個類別的兩個隨機效果(攔截)。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM