发布于 2016-01-02 09:43:08 | 835 次阅读 | 评论: 0 | 来源: 网络整理

之前我们用回归分析来创建一个描述变异的预测变量对因变量的影响模型。有时,如果我们有像是/否或男/女等值的分类变量,简单的回归分析给出变量的每个值多个结果的分类。在这样的情况下,我们可以通过使用它连同预测变量和比较为分类变量的每个级别的回归线来研究分类变量的效果。这种分析也称为协方差分析(ANCOVA)。

示例

考虑建在数据集 mtcars 在R语言中。我们观测该字段 “am” 表示变速器的类型(自动或手动)。 它是符合数值 0 和 1 的分类变量。每一辆汽车的每加仑值(mpg)的里程也可以依靠它除了马力(“hp”)的值。

我们研究“am”的值在“mpg”和“hp”之间的回归效果。它是通过使用 aov()函数之后的 anova() 函数来比较多元回归完成。

输入

从数据集 mtcars 中创建一个包含字段 “mpg”,“hp” 和 “am” 的数据帧。在这里,我们以“mpg”作为响应变量,“hp”作为预测变量以及 “am” 作为分类变量。

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

当我们上面的代码执行时,它产生以下结果:

                  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

ANCOVA 分析

我们创建回归模型以“hp”作为预测变量,“mpg”作为响应变量,考虑“am”和“hp”之间的相互作用。

以分类变量和预测变量之间的互动模式

# Get the dataset.
input <- mtcars

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

当我们上面的代码执行时,它产生以下结果:

            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

这一结果表明,这两种马力和传输类型对每加仑英里显著效果,在这两种情况下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))

当我们上面的代码执行时,它产生以下结果:

            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

这一结果表明,这两种马力和传输类型对每加仑英里显著效果,在这两种情况下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))
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

如p值大于0.05,我们得出结论,马力和透射型之间的相互作用是不显著。所以每加仑里程将取决于在汽车中自动和手动变速模式的马力。



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务