p ( Y= 1 )
Una situación más complicada es donde tienes más de una covariable continua. En un caso como este, a menudo hay una covariable particular que es 'primaria' en algún sentido. Esa covariable puede usarse para el eje X. Luego resuelve varios valores preespecificados de las otras covariables, típicamente la media y +/- 1SD. Otras opciones incluyen varios tipos de tramas 3D, tramas paralelas o tramas interactivas.
Mi respuesta a una pregunta diferente aquí tiene información sobre una variedad de gráficos para explorar datos en más de 2 dimensiones. Su caso es esencialmente análogo, excepto que está interesado en presentar los valores pronosticados del modelo, en lugar de los valores brutos.
Actualizar:
He escrito un código de ejemplo simple en R para hacer estos trazados. Permítanme señalar algunas cosas: debido a que la 'acción' se lleva a cabo temprano, solo ejecuté BID hasta 700 (pero siéntase libre de extenderla a 2000). En este ejemplo, estoy usando la función que especifique y tomo la primera categoría (es decir, femenina y joven) como categoría de referencia (que es la predeterminada en R). Como @whuber señala en su comentario, Los modelos LR son lineales en logaritmo de probabilidades, por lo que puede usar el primer bloque de valores predichos y trazar como lo haría con la regresión OLS si lo desea. El logit es la función de enlace, que le permite conectar el modelo a las probabilidades; el segundo bloque convierte las probabilidades de registro en probabilidades mediante el inverso de la función logit, es decir, exponiendo (convirtiendo en probabilidades) y luego dividiendo las probabilidades entre 1 + probabilidades. (Discutir la naturaleza de las funciones de enlace y este tipo de modelo aquí , si desea más información).
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")
Lo que produce la siguiente gráfica:

Estas funciones son lo suficientemente similares como para que el enfoque de la gráfica de cuatro paralelos que describí inicialmente no sea muy distintivo. El siguiente código implementa mi enfoque 'alternativo':
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"))
produciendo a su vez, esta trama: