【发布时间】:2019-04-30 18:33:08
【问题描述】:
我正在尝试绘制涉及 4 个定量变量(3 个预测变量和 1 个响应)的二项式关系的 4d 曲面图。
我有森林覆盖率 (cov)、景观异质性 (het) 和大量捕食者 (abund) 来解释捕食的概率 (pred)。
所以我想在图表上放 x = cov, y = het, z = abund 和一个颜色渐变来代表pred。我想要一个类似这样的图表:
我的模型是:
model <- glm(cbind(pred,npred)~ cov + het + abund + abund:cov + cov:het, data=results, family=binomial)
我绘制图表的脚本:
het <- seq(0, 2, 0.05288)
cov <- seq(0, 0.8, 0.021600)
abun <- seq(0, 0.9, 0.024)
gg <- expand.grid(het=het, cov=cov, abund=abund)
gg$pred < -predict(model,newdata=gg, type = "response")
head(gg)
with(gg, plot3d(het, cov, abund, type = "n"))
cols <- heat.colors(20)
cuts <- with(gg, cut(pred, breaks = 20))
with(gg, plot3d(het, cov, abund, type = "n"))
with(gg, surface3d(1:20,1:20, matrix(pred, ncol = 20),
color = cols[cuts], back = "fill"))
不幸的是,我认为有些地方出了问题,并没有像我想象的那样情节。 有人可以帮我编写脚本或提出更好的建议吗?
我的数据集:
het cov abun pred npred
1.90164 0.636460117 0.730424235 24 14
2.13681 0.409547496 0.735686442 8 42
2.18218 0.631526938 0.744585387 2 48
2.10223 0.568536934 0.746072471 8 36
2.11588 0.390850929 0.747720518 2 50
2.10288 0.465843118 0.754245798 6 42
2.28891 0.272948757 0.757754057 4 50
2.31959 0.281255571 0.776337246 2 32
2.10626 0.426842961 0.778512783 4 46
2.0163 0.546051041 0.780669728 6 50
1.91282 0.433635614 0.809807372 2 48
1.67011 0.594238535 0.827360862 18 26
1.80076 0.719426666 0.830916931 4 26
2.29307 0.471266098 0.839754622 2 44
2.00811 0.574829217 0.839935299 2 40
2.25667 0.416338714 0.849465507 0 54
2.02098 0.306265093 0.860655587 4 42
2.10236 0.263078082 0.860656944 6 36
1.23721 0.236391255 0.879960428 6 44
【问题讨论】:
-
您的问题没有意义:您在卷中的每个位置都有不同的变量值。你不会从这样的数据中得到表面。您可能需要一系列曲面或 3d 等高线图(使用
misc3d::contour3d),但不需要像您展示的那样的曲面。我无法向您展示这些,因为我们没有results变量,所以我们无法运行您的代码。你能整理出一组简单的预测吗? -
对不起,如果我的问题没有意义。我对此有点缺乏经验,我仍在学习。正如我上面所说,我试图了解森林覆盖、景观异质性和捕食者的数量如何解释捕食的可能性。我使用其他变量(例如,捕食者的丰富程度、一天中的时段)进行了模型选择,上面是最简约的模型。如果可能的话,我想在一个图表中表示这个模型。我可以用你建议的函数来表示这个模型吗?我将更新并放置我的数据集。非常感谢。
标签: r 3d logistic-regression rgl