【问题标题】:How to plot studentized residuals and fitted values in R using ggplot?如何使用 ggplot 在 R 中绘制学生化残差和拟合值?
【发布时间】:2018-11-14 14:57:53
【问题描述】:

首先,我根据clean_sales 中的数据拟合模型并将其传递给对象fit_num_var,但随后我很难将其制成图表以可视化拟合值和学生化残差。我的代码如下:

#Outliers 
attach(clean_sales)
fit_num_var <- lm(SalePrice ~ ResidentialUnits + CommercialUnits + 
                  YearBuilt + TotalUnits + LandSquareFeet + GrossSquareFeet)
fit_num_var
ggplot(fit_num_var, aes(x=as.vector(fitted.values), y=as.vector(residuals))) + 
geom_point() + geom_line() + xlab("Fitted Values") + ylab("Studentized Residuals")

错误信息是:

as.vector(x, mode) 中的错误:无法将“闭包”类型强制转换为“any”类型的向量

请告诉我应该如何解决这个问题。非常感谢!

【问题讨论】:

标签: r ggplot2 outliers


【解决方案1】:

没有可重现的例子,但试试这个:

  • 不要使用attach(),而是使用data= 参数到lm()(这不是您的实际问题,但更好的做法)
  • 使用fitted(fit_num_var)
  • 您可能还对broom 包中的augment 函数感兴趣
fit_num_var <- lm(SalePrice ~ ResidentialUnits + CommercialUnits + 
              YearBuilt + TotalUnits + LandSquareFeet + GrossSquareFeet,
   data=clean_sales)
ggplot(fit_num_var, aes(x=fitted(fit_num_var), 
          y=residuals(fit_num_var))) + 
         geom_point() + smooth() + xlab("Fitted Values") + 
                                   ylab("Studentized Residuals")

【讨论】:

  • 如果有明确的反对理由,很乐意尝试改进这一点......
  • 我在这里只看到一个缺失的括号`y=residuals(fit_num_var))`,它可能是y=residuals(fit_num_var)))。非常感谢您提供代码。
猜你喜欢
  • 2020-09-02
  • 2016-08-12
  • 2018-01-11
  • 1970-01-01
  • 2015-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多