如何检查适合数据集的二阶方程?

时间:2018-07-03 23:30:57

标签: r

以数据集“ iris”为例。

假设我正在尝试确定是否存在适合变量“ Sepal.Width”和“ Sepal.Length”的模型,如果要检查线性回归模型,我可以简单地使用{ {1}}函数:

lm

让我们假设我的R平方值很低,我预感不是线性模型,而是第二级模型。像这样:

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

R中是否有任何命令/程序包可以帮助我确定我的数据是否更可能遵循二阶方程拟合?

1 个答案:

答案 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上可以更好地解决这个问题,我会将其跟进后续问题。