パッケージのlmer()
関数を使用して、混合効果モデルを作成しました。 lme4
パッケージは、いくつかの良い哲学的理由のために係数のp値を出力しません。しかし、私はまだ私の出版物で報告するためにp値が必要です。 lmer()
で作成されたモデルを使用してp値を計算する方法は複数あります。 here。broom :: tidy()を使用してlme4 :: lmer()によって作成された線形混合効果モデルからp値を計算するには?
私の問題は:パッケージのtidy()
機能を使用してp値を抽出したいと思います。ここで、私は次のパイプラインを維持したいので、私は本当にtidy()
に固執したい:
data_frame %>% group_by(grouping variables) %>% do(tidy(fitted_model))
1つのオプションは、カスタム関数を作成し、パイプラインにそれを追加することです。しかし、broom
パッケージ(http://rpackages.ianhowson.com/cran/broom/man/lme4_tidiers.html)のmanページは言う:これにより
"p.value P-value computed from t-statistic (may be missing/NA)".
は、私はすでにほうきに実装されていlmerモデルによって与えられたt値からp値を計算する機能を想定しています。だから、私は車輪を再発明することに消極的です。
問題は、p.valueという名前の列が得られないことです。私は最悪の場合のシナリオとして、NAsを持つp.valueという名前の列を期待していました。
コード:
library(lme4)
library(broom)
lme <- lmer(Reaction ~ Days + (1 + Days | Subject), sleepstudy)
tidy(lme)
tidy(lme, effects = "fixed")
出力:あなたはp値を得るために、パッケージlmerTest
が必要になります
> 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
p値を自分で計算する必要があるようです。 – Bulat