以数据集“ iris”为例。
假设我正在尝试确定是否存在适合变量“ Sepal.Width”和“ Sepal.Length”的模型,如果要检查线性回归模型,我可以简单地使用{ {1}}函数:
lm
让我们假设我的R平方值很低,我预感不是线性模型,而是第二级模型。像这样:
lm(Sepal.Length ~ Sepal.Width, data = iris)
R中是否有任何命令/程序包可以帮助我确定我的数据是否更可能遵循二阶方程拟合?
答案 0 :(得分:1)
第一个公式接口不允许该公式表示您认为应该的含义。您需要这样做:
Sepal.Length ~ Sepal.Width + I(Sepal.Width)^2
但是即使那样,也不是用于统计推断的正确方法。相反,您将比较这两种模型:
mod1 <- lm( Sepal.Length ~ Sepal.Width, data=iris)
mod2 <- lm( Sepal.Length ~ poly( Sepal.Width, 2) , data=iris)
anova( mod1, mod2)
poly
函数创建正交多项式,并且推论统计信息可以正确说明X和X ^ 2之间的相关性。结果:
Analysis of Variance Table
Model 1: Sepal.Length ~ Sepal.Width
Model 2: Sepal.Length ~ poly(Sepal.Width, 2)
Res.Df RSS Df Sum of Sq F Pr(>F)
1 148 100.756
2 147 98.752 1 2.0044 2.9838 0.0862 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
...显示建议的p值为0.086,但是许多期刊对此并不感兴趣。除了编码问题外,在CrossValidated.com上可以更好地解决这个问题,我会将其跟进后续问题。