【问题标题】:How to properly use lm() in R in order to run ANCOVA test?如何在 R 中正确使用 lm() 以运行 ANCOVA 测试?
【发布时间】:2020-08-22 00:05:19
【问题描述】:

我目前正在开展一个项目,在该项目中我必须使用集成在 R. (Iris) 中的数据集运行 ANCOVA 测试

我试图弄清楚如何设置 lm() 以运行此测试。我不想要完整的答案,因为我真的很想学习。

所以,基本上我需要使用 r 中的数据集 iris 运行 ANCOVA。它要求我比较所有三个物种的Sepal.Length,同时调整Sepal.Width

我已经尝试了所有方法,但没有任何效果,而且我知道这绝对是用户错误。

我对使用 r 还很陌生,所以请善待。

我目前有:

fit2 <- lm(Sepal.Length ~ Species + Sepal.Width, data = iris_data) 

我需要在不同的场合将单个 Species 乘以 Sepal.width。我什至创建了不同的对象,以便将它们乘以宽度,但我得到了无数错误。

我创建的当前对象是这些:

setosa     <- iris[iris$Species == "setosa", ]
versicolor <- iris[iris$Species == "versicolor", ]
virginica  <- iris[iris$Species == "virginica", ]`

请帮助引导我朝着正确的方向前进,谢谢!没有完整的答案,我只需要知道如何设置它,或者我可能不知道在这种情况下可以帮助我的功能。

感谢任何帮助。 谢谢

【问题讨论】:

  • 你到底想乘什么?
  • 因此内部有三种不同类型的物种:setosa、versicolor 和 Virginica。我正在尝试从 Species: setosa 获取 Sepal.width。我一直无法弄清楚如何做到这一点。感谢您的回复。

标签: r statistics analysis ancova


【解决方案1】:

协方差分析包括因子和连续变量作为线性模型中的自变量。

对于iris 数据集,我们将运行以下命令:

  lm(Sepal.Length ~ Sepal.Width + Species,data = iris)

所以OP中的原始代码确实是设置分析的正确方法,但关键是截距表示输出中未列出的因子水平,而其他因子水平被解释为相对差异到截距所代表的物种。

由于Setosa 物种未列在回归系数列表中,因此它由截距项表示。因此,其他物种系数被解释为“物种 = Virginica 对萼片长度的影响是 x 相对于 Setosa,净萼片宽度。”

要使用系数来预测 Sepal.Length 的值,如果 Species = Setosa,可以忽略 Virginica 和 Versicolor 的系数(即将它们的值设置为 0)。

做出预测

为了使用模型进行预测,我们保存模型对象并将其与predict() 函数一起使用。

fit <- lm(Sepal.Length ~ Sepal.Width + Species,data = iris)

# predict some values
# first, set up the independent variables
Species <- c("setosa","setosa","virginica","versicolor","setosa")
Sepal.Width <- c(3.1,3.2,3.8,2.9,3.25)

# next, build a data frame
data <- data.frame(Species,Sepal.Width)

# predict and print 
data$predicted <- predict(fit,data)
data

...和输出:

> data
     Species Sepal.Width predicted
1     setosa        3.10  4.742432
2     setosa        3.20  4.822788
3  virginica        3.80  7.251741
4 versicolor        2.90  6.040463
5     setosa        3.25  4.862966
> 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 2021-04-18
    • 2019-04-22
    • 1970-01-01
    • 2020-10-19
    • 2022-01-22
    相关资源
    最近更新 更多