使用plot_ly绘制3D回归曲面

时间:2019-07-16 07:06:35

标签: r 3d regression plotly

我正在尝试为数据集绘制回归模型,该模型具有“ mue”(火车断裂的摩擦系数),火车速度和火车温度的测量值。我使用lm构建了一个简单的回归模型,因此可以使用plot_ly测试绘图。随附的图显示了原始数据的蓝色标记,并且绘制的表面看起来不正确。它看起来应该更像是回归曲面...我还以2D绘图,以确保回归确实有效并且确实如此。我已经在下面发布了代码,并且想知道这里的人是否有任何建议。一直在尝试我可以在网上找到的所有内容,但似乎都没有用。我认为问题可能与构建网格有关?我已经尝试了几次,但是我总是收到错误消息,指出向量不匹配,等等。如果需要,我也很乐意将其发布。谢谢!

3D回归图

enter image description here

二维回归图

enter image description here

set.seed(123) # randum number generator
training.samples <- avg.frame$avg.mue %>%
  createDataPartition(p = 0.8, list = FALSE) # pick 80 percent of data 
train.data <- avg.frame[training.samples, ] # 80 percent is training data
test.data <- avg.frame[-training.samples, ] # 20 percent is test data

model_2 <- lm(avg.mue ~ avg.speed + avg.temp, data = train.data)
vals <- predict(model_2, train.data)

avg.mue <- matrix(vals, nrow = length(test.data$avg.speed), ncol = length(test.data$avg.temp))
plane <- avg.mue

p <- plot_ly(data = train.data, z = ~avg.mue, x = ~avg.speed, y = ~avg.temp, opacity = 0.6) %>%
  add_markers()
p %>% add_surface(z = ~plane, x = ~avg.speed, y = ~avg.temp, showscale = FALSE) %>%
  layout(showlegend = FALSE)

0 个答案:

没有答案