首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中,为什么我要得到“固定杠杆:残差对因子水平”而不是“残差比杠杆”?

在R中,为什么我要得到“固定杠杆:残差对因子水平”而不是“残差比杠杆”?
EN

Stack Overflow用户
提问于 2020-07-20 17:39:24
回答 1查看 580关注 0票数 1

我用一个连续变量(密度)和一个因子(季节)在R中做方差分析。当我检查模型假设时,我得到了一个名为“常量杠杆:残值与因子水平”的图,而不是“残差与杠杆”图。

代码语言:javascript
复制
limp.mod <- lm(EGGS~DENSITY*SEASON, data=limp)
autoplot(limp.mod,smooth.colour = NA, which=5)

图像:我得到了什么

图像:我想要什么

我怎样才能得到“残数与杠杆”的情节?为什么我的教科书中完全相同的代码会给出另一个自动绘图()输出?

提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-21 08:41:19

没有一个可重复的例子,我将首先创建一个基于内置数据集iris的模型。

代码语言:javascript
复制
df1 <- iris[1:100, 3:5]
df1$Species <- droplevels(df1$Species)
str(df1)
#'data.frame':   100 obs. of  3 variables:
# $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
# $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
# $ Species     : Factor w/ 2 levels "setosa","versicolor": 1 1 1 1 1 1 1 1 1 1 ...

fit <- lm(Petal.Length ~ Petal.Width*Species, df1)

至于图,autoplot是一个泛型函数。包ggfortify包括类"lm"对象的方法等。

来自help("autoplot.lm")

如果需要地块的子集,则指定数字1:6的子集。

默认情况是which = c(1, 2, 3, 5)。通过对参数的所有6个值的尝试,我们发现所需的图并不是其中之一。因此,需要建立一个自定义图。

剩余值和杠杆值分别可以从stats::residstats::hatvalues获得。

代码语言:javascript
复制
library(ggplot2)

dflev <- data.frame(Leverage = hatvalues(fit), y = resid(fit))

ggplot(dflev, aes(Leverage, y)) +
  geom_point() +
  geom_hline(yintercept = 0, linetype = "dashed") +
  ggtitle("Residuals vs Leverage") +
  lims(y = c(-1, 1)) +
  ylab("") +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63000992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档