我目前正在做一个项目,在这个项目中,我必须用R中集成的数据集运行ANCOVA检验。 (Iris)
我想知道如何设置lm()来运行这个测试。我不想要完整的答案,因为我真的想学习。
所以,基本上我需要使用r中的数据集iris来运行一个方差分析。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", ]`
请帮助我找到正确的方向,谢谢!没有完整的答案,我只是需要知道如何设置,或者我不知道有什么函数可以帮助我解决这种情况。
任何帮助都是感激不尽的!谢谢
协方差分析包括线性模型中的因素变量和连续变量作为自变量。
对于 iris
数据集,我们会运行如下。
lm(Sepal.Length ~ Sepal.Width + Species,data = iris)
所以上文中的原始代码确实是正确的分析方法 但关键是截距代表了没有在输出中列出的因子水平 而其他因子水平被解释为相对于截距所代表的物种的差异
由于 Setosa
品种没有列在回归系数表中,它是由截距项来表示的。因此,其他物种系数解释为 "物种= Virginica对萼片长度的影响是 x
相对于塞特萨,扣除萼片宽度"。
要使用系数来预测值的 Sepal.Length
如果物种=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
>