В настоящее время я анализирую данные опроса в R, подбирая модель логистической регрессии, которая включает термины взаимодействия.Ради воспроизводимости я сократил и упростил данные, с которыми я работаю.Его можно загрузить прямо через google drive .
Данные (dat
) состоят из фиктивной зависимой переменной y
(фиктивная), некоторых фиктивных независимых переменных x1:3
,посредник m
и вес wgt
.
Получив CSV-файл, вы можете просто скопировать и вставить следующий скрипт:
library(foreign)
dat<-read.csv("~/dat.csv") #fill in path
fit<-glm(data=dat,y ~ x1*m + x2*m + x3*m, family=quasibinomial(link="logit"), weights=wgt, na.action=na.exclude)
summary(fit)
BaylorEdPsych::PseudoR2(fit)
Вы заметите, что одинтермин взаимодействия sig (p <0,05), а остальные два - нет, даже если один из них близок (p <0,1). </p>
Теперь мне нужно визуализировать результаты.В частности, мне нужен график, который показывает, как x2
во взаимодействии с m
влияет на Pr(y)
.Когда я думаю о линейной регрессии, я имею в виду изображение двух линий (плюс КИ).Однако в этом случае логистической регрессии и эффекта взаимодействия я не совсем уверен.Каков был бы подходящий способ построить этот эффект взаимодействия и как это было бы сделано технически?Я был бы очень признателен, если бы кто-нибудь мог провести меня.
Есть ли способ использовать {ggplot2} и {эффекты} для построения или мне нужно что-то еще?
ОБНОВЛЕНИЕ: По-видимому, это самый простой способ получить желаемый график, даже с доверительными интервалами.Но я все еще задаюсь вопросом, подходит ли это a) для моделей логистической регрессии и b) почему так сложно получить это с помощью {ggplot2}.
library(jtools)
interact_plot(fit, pred="x2", modx="m", interval=T, int.width=0.95)
#Note on the use of this: Don't transform variables *within* your model, such as `as.factor(...)`. Apparently, the `jtools` functions cannot handel those.