0

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

我试图弄清楚如何设置 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", ]`

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

任何帮助表示赞赏。谢谢

4

1 回答 1

0

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

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

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

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

在此处输入图像描述

由于Setosa物种未列在回归系数列表中,因此由截距项表示。因此,其他物种系数被解释为“Species = 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
> 
于 2020-05-06T21:45:43.533 回答