На щастя для вас, у вас є лише одне безперервне коваріат. Таким чином, ви можете просто зробити чотири (тобто, 2 SEX x 2 AGE) графіки, кожен зі співвідношенням BID та . Крім того, ви можете зробити один сюжет із чотирма різними лініями на ньому (ви можете використовувати різні стилі ліній, ваги чи кольори для їх розрізнення). Ви можете отримати ці передбачувані рядки, вирішивши рівняння регресії в кожній з чотирьох комбінацій для діапазону значень BID. p(Y=1)
Складнішою є ситуація, коли у вас більше одного безперервного коваріату. У такому випадку часто є певний коваріат, який у певному сенсі є "первинним". Цей коваріат можна використовувати для осі X. Потім ви вирішите для декількох заданих значень інших коваріатів, як правило, середнього значення та +/- 1SD. Інші варіанти включають різні типи 3D-сюжетів, коплотів чи інтерактивних сюжетів.
У моїй відповіді на інше запитання тут є інформація про низку сюжетів для вивчення даних у понад 2 вимірах. Ваш випадок є по суті аналогічним, за винятком того, що вам цікаво представити передбачувані значення моделі, а не необроблені значення.
Оновлення:
Я написав простий код прикладу в R, щоб зробити ці сюжети. Дозвольте зазначити кілька речей: Оскільки "дія" відбувається рано, я побіг BID лише 700 (але не соромтеся продовжити це до 2000 року). У цьому прикладі я використовую функцію, яку ви вказали, і приймаю першу категорію (тобто, жінку та молодих) як референтну категорію (яка за замовчуванням в R). Як зазначає @whuber у своєму коментаріМоделі LR лінійні в одиницях журналу, тому ви можете використовувати перший блок передбачуваних значень та графік, як це можливо при регресії OLS, якщо ви захочете. Логіт - це функція зв'язку, яка дозволяє підключити модель до ймовірностей; другий блок перетворює коефіцієнти журналу у ймовірності через інверсію функції logit, тобто шляхом експоненції (перетворення на коефіцієнти), а потім діленням шансів на 1 + коефіцієнти. (Я обговорюю характер функції зв'язку , і цей тип моделі тут , якщо ви хочете отримати більше інформації.)
BID = seq(from=0, to=700, by=10)
logOdds.F.young = -3.92 + .014*BID
logOdds.M.young = -3.92 + .014*BID + .25*1
logOdds.F.old = -3.92 + .014*BID + .15*1
logOdds.M.old = -3.92 + .014*BID + .25*1 + .15*1
pY.F.young = exp(logOdds.F.young)/(1+ exp(logOdds.F.young))
pY.M.young = exp(logOdds.M.young)/(1+ exp(logOdds.M.young))
pY.F.old = exp(logOdds.F.old) /(1+ exp(logOdds.F.old))
pY.M.old = exp(logOdds.M.old) /(1+ exp(logOdds.M.old))
windows()
par(mfrow=c(2,2))
plot(x=BID, y=pY.F.young, type="l", col="blue", lwd=2,
ylab="Pr(Y=1)", main="predicted probabilities for young women")
plot(x=BID, y=pY.M.young, type="l", col="blue", lwd=2,
ylab="Pr(Y=1)", main="predicted probabilities for young men")
plot(x=BID, y=pY.F.old, type="l", col="blue", lwd=2,
ylab="Pr(Y=1)", main="predicted probabilities for old women")
plot(x=BID, y=pY.M.old, type="l", col="blue", lwd=2,
ylab="Pr(Y=1)", main="predicted probabilities for old men")
Що дає наступний сюжет:
Ці функції достатньо схожі на те, що чотири паралельний сюжетний підхід, який я окреслив спочатку, не дуже відрізняється. Наступний код реалізує мій "альтернативний" підхід:
windows()
plot(x=BID, y=pY.F.young, type="l", col="red", lwd=1,
ylab="Pr(Y=1)", main="predicted probabilities")
lines(x=BID, y=pY.M.young, col="blue", lwd=1)
lines(x=BID, y=pY.F.old, col="red", lwd=2, lty="dotted")
lines(x=BID, y=pY.M.old, col="blue", lwd=2, lty="dotted")
legend("bottomright", legend=c("young women", "young men",
"old women", "old men"), lty=c("solid", "solid", "dotted",
"dotted"), lwd=c(1,1,2,2), col=c("red", "blue", "red", "blue"))
створюючи, в свою чергу, цей сюжет: