1

我已成功使用 的plot_model函数sjplot绘制多项逻辑回归模型。回归包含一个结果(Info Sought,具有 3 个级别)和 2 个连续预测变量(DSA、ASA)。我还更改了 ASA 的值,plot_model以便根据 ASA 平均值和 SD 绘制预测的效果结果:

plot1 <- plot_model(multinomialmodel , type = "pred", terms = c("DSA", "ASA[meansd]")

在此处输入图像描述

我有两个定制问题:

1) 分面顺序:分面顺序基于结果级别的默认字母顺序(“展开”然后是“第一张图片”然后是“多张图片”)。有没有办法调整它?在运行和绘制模型之前,我尝试使用factor()(如这里的示例ggplot2)来调整级别,但这并没有导致生成的刻面顺序发生任何变化。也许可以通过 ggplot2 来代替,如此处提供的第一个解决方案中所示

2) 图例标签:图例当前用 ASA 的 -1 SD、平均值和 +1 SD 值标记绘制的线;有没有办法将这些标签调整为简单地说“-1 SD”、“平均值”和“+1 SD”而不是原始值?

谢谢!

4

1 回答 1

4

首先,我使用您提供的数据复制您的情节:

library(dplyr)
library(readr)
library(nnet)
library(sjPlot)

"ASA,DSA,Info_Sought
-0.108555801,0.659899854,First Pic
0.671946671,1.481880373,First Pic
2.184170211,-0.801398848,First Pic
-0.547588442,1.116555698,First Pic
-1.27930951,-0.299077419,First Pic
0.037788412,1.527545958,First Pic
-0.74271406,-0.755733264,Multiple Pics
1.20854212,-1.166723523,Multiple Pics
0.769509479,-0.390408588,Multiple Pics
-0.450025633,-1.02972677,Multiple Pics
0.769509479,0.614234269,Multiple Pics
0.281695434,0.705565438,Multiple Pics
-0.352462824,-0.299077419,Expand
0.671946671,1.481880373,Expand
2.184170211,-0.801398848,Expand
-0.547588442,1.116555698,Expand
-0.157337206,1.070890114,Expand
-1.27930951,-0.299077419,Expand" %>% 
  read_csv() -> d

multinomialmodel <- multinom(Info_Sought ~ ASA + DSA, data = d)

p1 <- plot_model(multinomialmodel , 
                 type = "pred", 
                 terms = c("DSA", "ASA[meansd]"))
p1

示例图

您的重构尝试没有奏效,因为sjPlot::plot_model()没有注意。解决对构面重新排序的一种方法是生成如上所述的初始图,并将数据中的构面变量替换为包含所需顺序的因子版本,如下所示:

p2 <- p1
p2$data$response.level <- factor(p2$data$response.level, 
                                 levels = c("Multiple Pics", "First Pic", "Expand"))
p2

重新排序的方面

最后,为了解决图例标签问题,我们可以将色标替换为包含所需标签的色标:

p2 + 
  scale_color_discrete(labels = c("-1 SD", "mean", "+1 SD"))

想要的情节

于 2019-07-17T21:57:53.223 回答