R 语言 协方差分析

  • R 语言 协方差分析

    我们使用回归分析来创建模型,以描述预测变量对响应变量的影响。有时,如果我们有一个分类变量,其值是“是/否”或“男性/女性”等。简单的回归分析会为该分类变量的每个值提供多个结果。在这种情况下,我们可以通过将分类变量与预测变量一起使用并比较分类变量每个级别的回归线来研究分类变量的影响。这种分析称为协方差分析,也称为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分析

    考虑到“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时,我们得出结论,马力和传输类型之间的交互作用不显着。因此,在自动和手动变速模式下,每加仑的行驶里程将以类似的方式取决于汽车的马力。