2016-11-15 7 views
0

sjPlotパッケージに依存する係数プロットを使用して、混合効果線形モデルから回帰係数を提示しようとしています。これは前の質問on plotting regression coefficientsのフォローアップです。sjPlotを使用してプレディクタを回帰係数プロットに並べ替え

私の問題は、予測子を並べ替えることができないということです。これは小さな問題ではありますが、実際にこのパッケージを使用することは妨げられています。正式な設定ではこのように結果を提示することはできません。

は、係数プロットを再現:

data("sleepstudy") 
sleepstudy$var2 <- rnorm(n=nrow(sleepstudy), mean=0, sd=1) 
sleepstudy$var3 <- rnorm(n=nrow(sleepstudy), mean=10, sd=5) 
sleepstudy$var4 <- rnorm(n=nrow(sleepstudy), mean=-5, sd=2) 
sleepstudy$var5 <- rnorm(n=nrow(sleepstudy), mean=-10, sd=10) 

M <- lmer(Reaction ~ Days + var2 + var3 + var4 + var5 + (1|Subject), data=sleepstudy, REML = FALSE) 

sjp.lmer(M, 
     type = "fe.std", 
     remove.estimates = c("var5"), 
     p.kr=FALSE, 
     y.offset = 0.4, 
     fade.ns = TRUE, 
     axis.labels = c("Number of days", "Variable 2", "Variable 3", "Variable 4") 
) 

私の問題は、私は順番に自分を示すこれらの変数をソートする必要があるということです。例えば。私は(上から下へ)この順序を必要とします:Days、var4、var2、var3。これは可能ですか?

ラベルの最終的な疑問:このaxis.labelsはラベルをプロットに割り当てる唯一の方法ですか?

+0

モデルをフィッティングするときに式の項の順序を変更しようとしましたか? – Daniel

+0

はい、モデル用語のユーザー定義ラベルには 'axis.labels'を使用する必要があります。 – Daniel

+0

はい、うまくいくでしょうが、より直接的な選択肢が良いでしょう。私は、相互作用と要素を持つ複雑な階層モデルを持っているので、式「remove.estimates」で遊んでいて、ラベルは非常に複雑なシーケンスになります。これが唯一の方法ですか? – 000andy8484

答えて

0

これはコメントとしては長すぎますので、私はこれを回答として投稿します。 group.estimateで見積もりをグループ化することはできますが、「グループ」ごとに1つの見積もりを設定してから、sort.est = TRUEで並べ替えることができます。ここで

ヘルプ?sjp.glmerから取られ、修正、例である:これは彼らのグループ化による推定値をソートします

data(efc) 

# create binary response 
efc$hi_qol <- dicho(efc$quol_5) 

# prepare group variable 
efc$grp = as.factor(efc$e15relat) 
levels(x = efc$grp) <- get_labels(efc$e15relat) 

# data frame for fitted model 
mydf <- data.frame(hi_qol = to_factor(efc$hi_qol), 
        sex = to_factor(efc$c161sex), 
        education = to_factor(efc$c172code), 
        c12hour = efc$c12hour, 
        neg_c_7 = efc$neg_c_7, 
        grp = efc$grp) 

fit <- glmer(hi_qol ~ sex + c12hour + neg_c_7 + education + (1|grp), 
      data = mydf, family = binomial("logit")) 

# define the order of estimates within `group.estimates`, and 
# set `sort.est = T`. 
sjp.glmer(fit, type = "fe", group.estimates = c(5, 4, 3, 2, 1), sort.est = T) 

- あなたはグループごとに1つの推定値を持っている場合、それはあなたのようなあなたの見積もりをソートします願い。各グループは独自の色を取得するので、次のように独自のカラースケールを追加する必要があります。

library(ggplot2) 
p <- sjp.glmer(fit, type = "fe", group.estimates = c(5, 4, 3, 2, 1), sort.est = T) 
p$plot + scale_color_manual(values = rep("#333333", 5)) 
+0

'?sjp.lm'に' group.estimates'の小さな例があります。 – Daniel

関連する問題