R教程

R 协方差分析

我们使用回归分析来创建模型来描述预测变量的变化对响应变量的影响。有时,如果我们有一个类别变量,其值为 Yes/No 或 Male/Female 等。简单回归分析会为类别变量的每个值提供多个结果。在这种情况下,我们可以通过将分类变量与预测变量一起使用并比较分类变量每个级别的回归线来研究分类变量的影响。这种分析称为 协方差分析,也称为 ANCOVA

示例

考虑 R 内置数据集 mtcars。在其中我们观察到字段"am"代表传输类型(自动或手动)。它是一个具有值 0 和 1 的分类变量。除了马力 ("hp") 的值之外,汽车的每加仑英里数 (mpg) 还取决于它。
我们研究了"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 分析

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

具有分类变量和预测变量之间相互作用的模型

# 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,我们得出结论,马力和变速箱类型之间的相互作用不显着。因此,在自动和手动变速箱模式下,每加仑汽油的行驶里程将以类似的方式取决于汽车的马力。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4