我有一个哺乳动物属的数据框。该列的每一行都是一个不同的属。共有三列:一列表示每个属的地理范围大小(连续变量),一列表示是否在流域内部或外部发现该属(二元变量),以及一列表示是否发现该属在化石记录中(二进制变量)。
我使用以下 R 代码执行了多重逻辑回归,以查看地理范围大小和盆地内外的存在是否可以预测化石记录中的存在。
Regression<-glm(df[ ,"FossilRecord"] ~ log(df[ ,"Geographic Range"]) + df[ ,"Basin"], family="binomial")
我正在尝试找到一种方法来直观地总结此回归的输出(而不是回归摘要表)。
我知道如何对单变量回归执行此操作。例如,我可以使用像 这样的图。如果我想了解地理范围大小与化石记录中的存在之间的关系。
但是,当有两个自变量且其中一个是二元变量时,我不知道如何制作类似或等效的图。在这种情况下我可以使用哪些绘图和数据可视化技术?
感谢您的帮助!
最佳答案
可视化很重要,但也可能非常困难。对于您的示例,我建议为分类协变量(盆地)的每个级别绘制一条预测 FossilRecord 与 GeographicRange 的线。以下是如何使用 ggplot2 执行此操作的示例包
##generating data
ssize <- 100
set.seed(12345)
dat <- data.frame(
Basin = rbinom(ssize, 1,.4),
GeographicRange = rnorm(ssize,10,2)
)
dat$FossilRecord = rbinom(ssize,1,(.3 + .1*dat$Basin + 0.04*dat$GeographicRange))
##fitting model
fit <- glm(FossilRecord ~ Basin + GeographicRange, family=binomial(), data=dat)
我们可以使用 predict()
函数来获取许多 GeographicRange 值和每个盆地类别的预测响应值。
##getting predicted response from model
plotting_dfm <- expand.grid(GeographicRange = seq(from=0, to = 20, by=0.1),
Basin = (0:1))
plotting_dfm$preds <- plogis( predict(fit , newdata=plotting_dfm))
现在您可以绘制预测结果:
##plotting the predicted response on the two covariates
library(ggplot2)
pl <- ggplot(plotting_dfm, aes(x=GeographicRange, y =preds, color=as.factor(Basin)))
pl +
geom_point( ) +
ggtitle("Predicted FossilRecord by GeoRange and Basin") +
ggplot2::ylab("Predicted FossilRecord")
关于r - 在 R 中绘制二元和连续值的多重逻辑回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36942443/