簡體   English   中英

如何在 R 中自動獲取所有模型估計值?

[英]How can I get all model estimates automatically in R?

我知道我可以手動計算模型的估計值,但我確信有一種方法可以自動獲取所有分類級別的所有模型估計值 由於我正在處理lmers ,也許應該是合適的。 注意:我不想預測新數據,我只想自動獲取所有估計值。 (剛剛編輯了帖子以使其更容易理解)

  • 一個例子:
> model <- lmer(Score ~ Proficiency_c * testType + (1|ID), data = myData, REML = F)

> summary(model)

Fixed effects:
                            Estimate Std. Error       df t value Pr(>|t|)    
(Intercept)                   4.8376     0.2803 156.9206  17.259  < 2e-16 ***
Proficiency_c                -1.3381     0.4405 156.9206  -3.038  0.00279 ** 
testTypeTestB                 0.2088     0.3269 126.0000   0.639  0.52421    
testTypeTestC                 0.4638     0.3269 126.0000   1.418  0.15853    
Proficiency_c:testTypeTestB   0.5008     0.5138 126.0000   0.975  0.33157    
Proficiency_c:testTypeTestC   0.2357     0.5138 126.0000   0.459  0.64727  
---

> contrasts(myData$testType)

      TestB TestC
TestA     0     0
TestB     1     0
TestC     0     1
  • '手工',我會:
## estimate for Test A:

y = b0 + b1x1 + b2x2 + b3x3 + b4(x1 * x2) + b5(x1 * x3)
y = b0 + b1 * 1 + 0 + 0 + 0
y = b0 + b1 
y = 3.49

## estimate for Test B:

y = b0 + b1x1 + b2x2 + b3x3 + b4(x1 * x2) + b5(x1 * x3)
y = b0 + b1 * 1 + b2 * 1 + 0 +  b4(1 * 1) + 0
y = b0 + b2 + (b1 + b4)x1 
y = 4.20

## estimate for Test C:

y = b0 + b1x1 + b2x2 + b3x3 + b4(x1 * x2) + b5(x1 * x3)
y = b0 + b1 * 1 + b2 * 0 + b3 * 1 + 0 + b5 (1 * 1)
y = b0 + b3 + (b1 + b5)x1 
y = 4.19

編輯的問題

  • 我經常與不知道如何自己得出模型估計值的人打交道,所以我通常必須“手工”計算它們。 我只是希望有一種方法可以在不手動執行的情況下獲得關於每個分類級別的所有“ys”估計(就像我在上面“手動”所做的那樣)? 同樣,現在,我不想預測新值。 提前致謝!

  • 數據:

 dput(myData)
structure(list(ID = c("p1", "p1", "p1", "p2", "p2", "p2", "p3", 
"p3", "p3", "p4", "p4", "p4", "p5", "p5", "p5", "p6", "p6", "p6", 
"p7", "p7", "p7", "p8", "p8", "p8", "p9", "p9", "p9", "p10", 
"p10", "p10", "p11", "p11", "p11", "p12", "p12", "p12", "p13", 
"p13", "p13", "p14", "p14", "p14", "p15", "p15", "p15", "p16", 
"p16", "p16", "p17", "p17", "p17", "p18", "p18", "p18", "p19", 
"p19", "p19", "p20", "p20", "p20", "p21", "p21", "p21", "p22", 
"p22", "p22", "p23", "p23", "p23", "p24", "p24", "p24", "p25", 
"p25", "p25", "p26", "p26", "p26", "p27", "p27", "p27", "p28", 
"p28", "p28", "p29", "p29", "p29", "p30", "p30", "p30", "p31", 
"p31", "p31", "p32", "p32", "p32", "p33", "p33", "p33", "p34", 
"p34", "p34", "p35", "p35", "p35", "p36", "p36", "p36", "p37", 
"p37", "p37", "p38", "p38", "p38", "p39", "p39", "p39", "p40", 
"p40", "p40", "p41", "p41", "p41", "p42", "p42", "p42", "p43", 
"p43", "p43", "p44", "p44", "p44", "p45", "p45", "p45", "p46", 
"p46", "p46", "p47", "p47", "p47", "p48", "p48", "p48", "p49", 
"p49", "p49", "p50", "p50", "p50", "p51", "p51", "p51", "p52", 
"p52", "p52", "p53", "p53", "p53", "p54", "p54", "p54", "p55", 
"p55", "p55", "p56", "p56", "p56", "p57", "p57", "p57", "p58", 
"p58", "p58", "p59", "p59", "p59", "p60", "p60", "p60", "p61", 
"p61", "p61", "p62", "p62", "p62", "p63", "p63", "p63"), Score = c(5.33, 
5.05, 5.15, 5.82, 2.29, 7.54, 4.46, 2.43, 1.53, 8.97, 7.69, 7.21, 
6.76, 8.41, 3.77, 3.33, 11.57, 7.69, 2.15, 3.84, 3.29, 3.36, 
6.66, 5.6, 4.23, 4.41, 3.07, 2.29, 4.9, 4.46, 3.22, 1.72, 2.08, 
4.47, 2.4, 2.54, 2.73, 6.57, 7.31, 4.46, 9.27, 4.31, 4.54, 6.32, 
8.97, 3.44, 4.68, 9.7, 2.15, 5.68, 5.26, 9.3, 5.68, 8.97, 4.65, 
4.13, 4.57, 11.22, 11.39, 7.52, 3.94, 4.47, 3.52, 5, 8, 5.81, 
2.96, 4.05, 2.22, 4.41, 5.64, 4.79, 2.43, 2.5, 4.16, 7.57, 9.21, 
2.59, 3.12, 3.84, 7.76, 8.77, 5.08, 7.81, 4.49, 2.17, 7.4, 5.81, 
4.9, 3.19, 3.2, 2.72, 3.67, 4.42, 3.57, 1.02, 4.42, 2.45, 5.88, 
7.84, 4.93, 9.61, 3.75, 1.8, 3.47, 0.65, 1.39, 2.9, 6.36, 2.77, 
2.67, 6.89, 6.74, 6.81, 1.94, 3.22, 3.12, 4.08, 5.31, 11.23, 
4.1, 4.28, 3.89, 2.98, 3.52, 3.64, 3.63, 5.08, 4.9, 6.66, 7.56, 
3.14, 5.26, 1.03, 4.58, 2.9, 2.5, 3.57, 4, 7.54, 3.5, 5.19, 2.56, 
2.38, 1.4, 3.97, 2, 8.69, 5.33, 6.42, 3.62, 2.59, 4.63, 4.85, 
6.87, 5.55, 3.14, 2.29, 4.68, 7.76, 3.53, 8.88, 3.44, 8, 5.15, 
6.77, 12.28, 6.25, 4.91, 7.01, 7.4, 5.21, 3, 4.87, 7.5, 5.47, 
8.97, 7.89, 7.54, 9.25, 7.24, 5.37, 6.41, 2.94, 5.47, 7.14, 5.4, 
5.06, 6.32), Proficiency_c = c(0.44, 0.44, 0.44, 0.69, 0.69, 
0.69, 1.24, 1.24, 1.24, -0.16, -0.16, -0.16, 1.14, 1.14, 1.14, 
0.69, 0.69, 0.69, -0.26, -0.26, -0.26, 0.94, 0.94, 0.94, -0.26, 
-0.26, -0.26, 1.04, 1.04, 1.04, 0.39, 0.39, 0.39, -0.06, -0.06, 
-0.06, -0.41, -0.41, -0.41, 0.54, 0.54, 0.54, -0.51, -0.51, -0.51, 
-0.81, -0.81, -0.81, 0.14, 0.14, 0.14, -0.31, -0.31, -0.31, 0.44, 
0.44, 0.44, -0.11, -0.11, -0.11, -0.21, -0.21, -0.21, -0.51, 
-0.51, -0.51, 0.24, 0.24, 0.24, 0.59, 0.59, 0.59, -0.21, -0.21, 
-0.21, -0.66, -0.66, -0.66, -0.06, -0.06, -0.06, -1.01, -1.01, 
-1.01, -0.26, -0.26, -0.26, 0.19, 0.19, 0.19, 0.84, 0.84, 0.84, 
-0.11, -0.11, -0.11, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.79, 
0.79, 0.79, 1.09, 1.09, 1.09, -0.76, -0.76, -0.76, 0.14, 0.14, 
0.14, 0.64, 0.64, 0.64, 0.49, 0.49, 0.49, -0.71, -0.71, -0.71, 
-0.31, -0.31, -0.31, -0.11, -0.11, -0.11, -0.61, -0.61, -0.61, 
0.19, 0.19, 0.19, -0.36, -0.36, -0.36, -0.31, -0.31, -0.31, -1.01, 
-1.01, -1.01, 1.19, 1.19, 1.19, -0.96, -0.96, -0.96, 0.99, 0.99, 
0.99, 0.74, 0.74, 0.74, 0.24, 0.24, 0.24, -0.06, -0.06, -0.06, 
-0.31, -0.31, -0.31, -0.66, -0.66, -0.66, -0.96, -0.96, -0.96, 
0.89, 0.89, 0.89, -0.96, -0.96, -0.96, -1.01, -1.01, -1.01, -0.66, 
-0.66, -0.66, -0.71, -0.71, -0.71, -0.36, -0.36, -0.36), testType = structure(c(1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), .Label = c("TestA", 
"TestB", "TestC"), class = "factor")), row.names = c(NA, -189L
), class = c("tbl_df", "tbl", "data.frame"))

我不確定您為什么要在參考熟練程度為 1(默認值為 0)時計算預測,但也許您正在尋找emmeans

library(emmeans)
emmeans(model, ~testType, at = list(Proficiency_c=1))

at =參數是在emmeans中指定我們想要計算邊際均值的方式,非焦點參數(在本例中為Proficiency_c )設置為默認值以外的值 [通常是數字協變量的均值]。 請參閱vignette("basics", package = "emmeans")emmeans有許多高質量的小插圖)。 它被指定為一個列表,因為我們可能有多個非焦點參數要設置。

結果:

NOTE: Results may be misleading due to involvement in interactions
 testType emmean    SE  df lower.CL upper.CL
 TestA      3.50 0.529 162     2.45     4.54
 TestB      4.21 0.529 162     3.16     5.25
 TestC      4.20 0.529 162     3.15     5.24

Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 

如果您正在尋找每種測試類型中的估計斜率,請使用emtrends

emtrends(model, ~testType, "Proficiency_c")
 testType Proficiency_c.trend    SE  df lower.CL upper.CL
 TestA                 -1.338 0.448 162    -2.22  -0.4541
 TestB                 -0.837 0.448 162    -1.72   0.0467
 TestC                 -1.102 0.448 162    -1.99  -0.2185

Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM