首页 > 解决方案 > 如何在 plotly 中为 3d 图形生成多重回归平面

问题描述

我想为我的图表创建一个 3d 回归平面。我不确定为什么它不起作用,但我认为这与我使用 predict 函数(以及相应的数据)有关。

ESS3 <- ESS2 %>%
  select(agertr, agea, eduyrs)
ESS3 <- na.omit(ESS3)

m5 <- lm(agertr ~ agea + eduyrs, data = ESS3)

# predict over sensible grid of values

ageas <- unique(ESS3$agea)
eduyrs1 <- unique(ESS3$eduyrs)
agertrs <- unique(ESS3$agertr)
grid <- with(ESS3, expand.grid(ageas, eduyrs1, agertrs))
d <- setNames(data.frame(grid), c("agea", "eduyrs", "agertrs"))


vals <- predict(model, newdata = d)

# form matrix and give to plotly
m <- matrix(vals, nrow = length(unique(d$agea)), ncol = length(unique(d$eduyrs)))

p <- plot_ly(m5, x = ~agea, y = ~agertr, z = ~eduyrs)
layout(scene = list(xaxis = list(title = 'Age'),
                    yaxis = list(title = 'Age of Retirement'),
                    zaxis = list(title = 'Years of Education')))

p %>% add_surface(x = ~ageas, y = ~eduyrs1, z = ~m)

产生的两个错误是:

预测错误(模型,newdata = d):找不到对象“模型”矩阵错误(vals,nrow = 长度(唯一(d$agea)),ncol = 长度(唯一(d$eduyrs))):对象'未找到 vals

这段代码有点超出我的能力,如果我的代码有点乱,很抱歉。感谢您的任何帮助和建议。

标签: r

解决方案


推荐阅读