【问题标题】:linear regression residuals scatterplot线性回归残差散点图
【发布时间】:2021-10-16 22:53:00
【问题描述】:

我使用以下命令进行了线性回归:

lm.intp <- lm(intp.trust~age,data=Scountry)

然后我希望画一个散点图来比较不同性别的残差。我使用Scountry$res &lt;- lm.intp$residuals 命令将回归残差放入数据框中,然后使用 ggplot 绘制散点图。但是当我运行Scountry$res &lt;- lm.intp$residuals 时,它一直说现有数据和分配的数据有不同的行。我怎样才能避免这种情况?

而当我绘制散点图时,我希望使用以下命令:

ggplot(Scountry, aes(x=, y=res, color=as.factor(gender))) +geom_point()

我知道在这个图中,y 应该是残差,x 应该是这个数据的观察值,但我真的不知道应该在 "x=" 中写什么,因为我的数据中的观察结果没有ID,长这样:

谁能帮我解决这个问题?我将不胜感激!

【问题讨论】:

  • 能否提供数据。或者至少有几行? stackoverflow.com/questions/5963269/…
  • 数据图片没有用,因为它们不包含有关变量数据类型的重要信息。您的图片甚至不包括您在分析中使用的变量。
  • 很抱歉,数据框有 400 多个变量。我应该只包括这里使用的变量年龄、intp.trust 和性别,然后放一些行吗?

标签: r


【解决方案1】:

嗯...它在这里工作。我创建了符合您描述的数据。您的数据集中可能有 NA 吗?

Scountry <- data.frame(intp.trust = seq(200, 205),
                       age = seq(20,25),
                       gender= c("F", "M", "F", "M", "F", NA))

Scountry_lm <- Scountry %>% select(intp.trust, age, gender) %>% na.omit()


lm.intp <- lm(intp.trust~age,data=Scountry_lm)

Scountry_lm$res <- lm.intp$residuals
ggplot(Scountry_lm, aes(x= age,y=res, color=as.factor(gender))) +geom_point()

【讨论】:

  • 是的,我猜我的数据中存在一些缺失值,所以残差数小于观察数。有没有办法处理缺失值?
  • 当然。如果您使用 dplyr() 包,您可以编写 Scountry % na.omit() 这将删除任何列中包含 NA 的所有行。所以,我宁愿建议: Scountry_lm % select (intp.trust, age, gender) %>% na.omit() 但是在线性回归的代码中使用新的数据框
  • 我编辑了答案。现在我将 NA 放入原始数据集中,稍后在新数据集中将其删除!
  • 谢谢!很有帮助!
  • 我还有一个问题,在您的 ggplot 函数中,您使用“年龄”作为散点图的 x。如果我想用每一个观测值作为散点图的 x 来显示每一个观测值的残差,我该怎么办?
猜你喜欢
  • 2021-02-06
  • 2021-04-01
  • 2021-01-28
  • 2013-07-17
  • 2012-06-27
  • 1970-01-01
  • 1970-01-01
  • 2019-05-15
  • 1970-01-01
相关资源
最近更新 更多