你好,游客 登录
背景:
阅读新闻

R语言协方差分析

[日期:2017-09-12] 来源:yiibai  作者:初生不惑 [字体: ]

我们使用回归分析来创建描述预测变量变量对响应变量的影响的模型。有时,如果我们有类似于是/否男/女等值的分类变量,简单回归分析为分类变量的每个值提供多个结果。在这种情况下,可以通过使用分类变量和预测变量来研究分类变量的影响,并比较分类变量的每个级别的回归线。 这样的分析被称为协方差分析,也称为ANCOVA

输入数据

从R提供的数据集mtcars创建一个包含字段“mpg”“hp”“am”的数据框。 这里我们将“mpg”作为响应变量,将“hp”作为预测变量,将“am”作为分类变量。

input <- mtcars[,c("am","mpg","hp")]
print(head(input))
R

当我们执行上述代码时,会产生以下结果 -

                   am   mpg   hp
Mazda RX4          1    21.0  110
Mazda RX4 Wag      1    21.0  110
Datsun 710         1    22.8   93
Hornet 4 Drive     0    21.4  110
Hornet Sportabout  0    18.7  175
Valiant            0    18.1  105
R

ANCOVA分析

我们创建一个回归模型,将“hp”作为预测变量,将“mpg”作为响应变量,考虑到“am”“hp”之间的相互作用,参考以下示例代码 -

模型与分类变量和预测变量之间的交互

# Get the dataset.
input <- mtcars

# Create the regression model.
result <- aov(mpg~hp*am,data = input)
print(summary(result))
R

当我们执行上述代码时,会产生以下结果 -

            Df Sum Sq Mean Sq F value   Pr(>F)    
hp           1  678.4   678.4  77.391 1.50e-09 ***
am           1  202.2   202.2  23.072 4.75e-05 ***
hp:am        1    0.0     0.0   0.001    0.981    
Residuals   28  245.4     8.8                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Shell

该结果表明,马力和变速箱型均具有对每加仑英里数的显着影响,因为这两种情况下的p值均小于0.05。但是,这两个变量之间的相互作用并不重要,因为p值大于0.05。

分类变量与预测变量之间没有交互的模型 -

# Get the dataset.
input <- mtcars

# Create the regression model.
result <- aov(mpg~hp+am,data = input)
print(summary(result))
R

当我们执行上述代码时,会产生以下结果 -

            Df  Sum Sq  Mean Sq   F value   Pr(>F)    
hp           1  678.4   678.4   80.15 7.63e-10 ***
am           1  202.2   202.2   23.89 3.46e-05 ***
Residuals   29  245.4     8.5                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Shell

该结果表明,马力和变速箱型均具有对每加仑英里数的显着影响,因为这两种情况下的p值均小于0.05

比较两个模型

现在可以比较这两个模型来确定变量的相互作用是否真的有意义的。 为此,我们使用anova()函数。

# Get the dataset.
input <- mtcars

# Create the regression models.
result1 <- aov(mpg~hp*am,data = input)
result2 <- aov(mpg~hp+am,data = input)

# Compare the two models.
print(anova(result1,result2))
R

当我们执行上述代码时,会产生以下结果 -

Model 1: mpg ~ hp * am
Model 2: mpg ~ hp + am
  Res.Df    RSS Df  Sum of Sq     F Pr(>F)
1     28 245.43                           
2     29 245.44 -1 -0.0052515 6e-04 0.9806
Shell

由于p值大于0.05,我们得出结论,马力与传播类型之间的相互作用不明显。所以每加仑里程将取决于自动和手动变速模式的马力。

收藏 推荐 打印 | 阅读:
相关新闻       R语言实例  R语言协方差分析