2016-05-12 113 views
2

我使用lme4軟件包中的lmer()函數構建了一個混合效果模型。 lme4軟件包由於某些良好的哲學原因而不輸出係數的p值。但是,我仍然需要在我的出版物中報告p值。我知道有多種方法可以使用由lmer()創建的模型來計算p值,例如, here如何使用broom :: tidy()從由lme4 :: lmer()創建的線性混合效果模型計算p值?

我的問題是:我想使用broom包中的tidy()函數提取p值。在這裏,我真的要與tidy()堅持,因爲我想維護以下管道:

data_frame %>% group_by(grouping variables) %>% do(tidy(fitted_model)) 

一種選擇是創建一個自定義功能,並追加到管道。然而,broom包(http://rpackages.ianhowson.com/cran/broom/man/lme4_tidiers.html)的手冊頁說:

"p.value P-value computed from t-statistic (may be missing/NA)". 

通過這個我假設一個函數從11聚物通過模型給出的t值已經在掃帚已經實現計算p值。所以,我不願意重新發明輪子。

問題是我沒有得到名稱爲p.value的列。我期待將一個名爲p.value的列作爲最壞情況的NAs。

代碼:

library(lme4) 
library(broom) 
lme <- lmer(Reaction ~ Days + (1 + Days | Subject), sleepstudy) 
tidy(lme) 
tidy(lme, effects = "fixed") 

輸出:

> tidy(lme) 
         term  estimate std.error statistic group 
1     (Intercept) 251.40510485 6.824557 36.838306 fixed 
2       Days 10.46728596 1.545789 6.771485 fixed 
3  sd_(Intercept).Subject 24.74045195  NA  NA Subject 
4    sd_Days.Subject 5.92213312  NA  NA Subject 
5 cor_(Intercept).Days.Subject 0.06555113  NA  NA Subject 
6  sd_Observation.Residual 25.59181564  NA  NA Residual 
> tidy(lme, effects = "fixed") 
     term estimate std.error statistic 
1 (Intercept) 251.40510 6.824557 36.838306 
2  Days 10.46729 1.545789 6.771485 
+0

它看起來像你將不得不自己計算p值。 – Bulat

回答

4

您需要包lmerTest獲得p值。 tidy將無法​​在lme對象上工作,您需要將其附加到您的格式。

attach(mtcars) 
lme <- lmer(mpg ~ cyl + (1 + cyl | carb), mtcars) 
summary(lme) 
+0

似乎lmertest不適用於R 3.4.1 –

相關問題