Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 4d曲面图逻辑回归(x、y、z、颜色)_R_3d_Logistic Regression_Rgl - Fatal编程技术网

R 4d曲面图逻辑回归(x、y、z、颜色)

R 4d曲面图逻辑回归(x、y、z、颜色),r,3d,logistic-regression,rgl,R,3d,Logistic Regression,Rgl,我试图绘制一个包含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

我试图绘制一个包含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)

您的预测是三个预测变量的函数,所以您不能将它们表示为单个曲面。有两种常见的方法可以做到这一点:

  • 使用
    misc3d::contour3d
    功能绘制三维轮廓

  • 为其中一个变量的不同值绘制多个曲面

  • 在执行第一步之前,需要纠正代码中的一些拼写错误:有时使用
    abun
    ,有时使用
    abund
    :我将始终使用
    abun
    。你也有

    gg$pred < -predict(model,newdata=gg, type = "response")
    
    要绘制等高线图,需要选择等高线标高。您可以使用

    range(gg$pred)
    # [1] 2.220446e-16 1.000000e+00
    
    所以你的模型预测的概率从0到1。我想要20个介于0和1之间的轮廓,但是
    contour3d
    函数不喜欢超出范围 轮廓,所以我将使用1/20,…,19/20:

    levels <- (1:19)/20
    colors <- heat.colors(19)
    
    现在绘制一些轴,然后绘制绘图:

    plot3d(gg, type = "n")
    contour3d(pred, levels, het, cov, abun, color = colors, alpha = 0.5, add = TRUE)
    
    alpha=0.2
    值使表面部分透明;您可能需要尝试0和1之间的其他值,以查看您喜欢的值。这是我得到的。在R中,可以旋转绘图以从不同角度查看它,或者调用
    rglwidget()
    以可旋转的形式保存它,以便在web浏览器上查看


    我将把如何绘制第二种类型的绘图留给您来解决。

    您的问题没有意义:卷中每个位置的变量值都不同。你不会从那样的数据中得到曲面。您可能需要一系列曲面或三维等高线图(使用
    misc3d::contour3d
    ),但不需要显示的曲面。我不能向您展示这些内容,因为我们没有
    results
    变量,因此无法运行您的代码。你能总结出一组简单的预测吗?如果我的问题没有意义,我很抱歉。我在这方面有点经验不足,我还在学习。正如我上面所说,我试图理解森林覆盖率、景观异质性和捕食者的丰度如何解释捕食的可能性。我使用其他变量(例如,捕食者的丰富度、一天中的时间)进行了模型选择,最节俭的模型在上面。如果可能的话,我想用一个图表来表示这个模型。我可以用你建议的函数来表示这个模型吗?我将更新并放置我的数据集。非常感谢你。非常感谢你的剧本和提示,我从你身上学到了很多。我还有两个问题。你能告诉我是否可以添加一个像我展示的图中那样的图例吗?与ggplot有互动吗?谢谢
    plot3Drgl
    软件包可以制作这样的图例,但我不认为它可以制作三维等高线图。(contour3Drgl函数还有其他功能。)我不知道是否有办法将图例与其他
    rgl
    代码混合。
    range(gg$pred)
    # [1] 2.220446e-16 1.000000e+00
    
    levels <- (1:19)/20
    colors <- heat.colors(19)
    
    pred <- array(gg$pred, c(length(het), length(cov), length(abun)))
    
    plot3d(gg, type = "n")
    contour3d(pred, levels, het, cov, abun, color = colors, alpha = 0.5, add = TRUE)