- R 菜鸟教程
- R - 教程
- R - 概述
- R - 环境设置
- R - 基本语法
- R - 数据类型
- R - 变量
- R - 运算符
- R - 判断语句
- R - Loop (循环)
- R - 函数
- R - 字符串
- R - 矢量
- R - 列表
- R - 矩阵
- R - 数组
- R - 因子
- R - 数据帧
- R - 包(Packages)
- 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 - Logistic 回归
- R - 正态分布
- R - 二项分布
- R - 泊松回归
- R - 协方差分析
- R - 时间序列分析
- R - 非线性最小二乘法
- R - 决策树
- R - 随机森林
- R - 生存分析
- 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))
当我们执行上述代码时,它会产生以下结果——
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” 之间的交互。
具有分类变量和预测变量之间交互作用的模型
# 获取数据集。
input <- mtcars
# 创建回归模型。
result <- aov(mpg~hp*am,data = input)
print(summary(result))
当我们执行上述代码时,它会产生以下结果——
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。
分类变量和预测变量之间没有交互作用的模型
# 获取数据集。
input <- mtcars
# 创建回归模型。
result <- aov(mpg~hp+am,data = input)
print(summary(result))
当我们执行上述代码时,它会产生以下结果——
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() 函数。
# 获取数据集。
input <- mtcars
# 创建回归模型。
result1 <- aov(mpg~hp*am,data = input)
result2 <- aov(mpg~hp+am,data = input)
# 比较这两个模型。
print(anova(result1,result2))
当我们执行上述代码时,它会产生以下结果——
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,我们得出结论,马力和传动类型之间的交互作用并不显著。因此,每加仑的行驶里程将以类似的方式取决于汽车在自动和手动变速箱模式下的马力。