×

R 教程

R语言 概述R语言 环境设置R语言 基本语法R语言 数据类型R语言 变量R语言 运算符R语言 决策R语言 包R语言 循环R语言 数据重塑R语言 函数R语言 字符串R语言 向量R语言 列表R语言 矩阵R语言 数组R语言 因子R语言 数据帧

R语言 图表

R语言 条形图R语言 箱线图R语言 直方图R语言 折线图R语言 散点图R语言 饼状图

R语言 数据接口

R语言 CSV文件R语言 Excel文件R语言 二进制文件R语言 XML文件R语言 JSON文件R语言 Web数据R语言 数据库

R语言 统计示例

R语言 平均值,中位数和模式R语言 线性回归R语言 多重回归R语言 逻辑回归R语言 标准分布R语言 二项分布R语言 泊松回归R语言 协方差分析R语言 时间序列分析R语言 非线性最小二乘R语言 决策树R语言 随机森林算法R语言 生存分析R语言 卡方检验

R语言 相关资源

R语言 外部资源R语言 相关讨论R语言 面试题

R语言 协方差分析


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

协方差分析

我们创建一个回归模型,以“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,我们得出结论,马力和传播类型之间的相互作用不显着。 因此,在汽车和手动变速器模式下,每加仑的里程将以类似的方式取决于汽车的马力。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)