- R 教程
- R - 首页
- R - 概述
- R - 环境设置
- R - 基本语法
- R - 数据类型
- R - 变量
- R - 运算符
- R - 决策
- R - 循环
- R - 函数
- R - 字符串
- R - 向量
- R - 列表
- R - 矩阵
- R - 数组
- R - 因子
- R - 数据框
- R - 包
- R - 数据重塑
R - 卡方检验
卡方检验是一种统计方法,用于确定两个分类变量之间是否存在显著的相关性。这两个变量都应该来自同一总体,并且应该是分类变量,例如 - 是/否,男/女,红/绿等。
例如,我们可以构建一个数据集,其中包含人们购买冰淇淋的模式的观察结果,并尝试将一个人的性别与其喜欢的冰淇淋口味相关联。如果发现相关性,我们可以通过了解访问人数的性别来计划相应口味的库存。
语法
用于执行卡方检验的函数是chisq.test()。
在 R 中创建卡方检验的基本语法如下:
chisq.test(data)
以下是所用参数的描述:
data 是表格形式的数据,其中包含观察结果中变量的计数值。
示例
我们将使用 "MASS" 库中的 Cars93 数据,该数据表示 1993 年不同汽车型号的销量。
library("MASS") print(str(Cars93))
当我们执行上述代码时,它会产生以下结果:
'data.frame': 93 obs. of 27 variables: $ Manufacturer : Factor w/ 32 levels "Acura","Audi",..: 1 1 2 2 3 4 4 4 4 5 ... $ Model : Factor w/ 93 levels "100","190E","240",..: 49 56 9 1 6 24 54 74 73 35 ... $ Type : Factor w/ 6 levels "Compact","Large",..: 4 3 1 3 3 3 2 2 3 2 ... $ Min.Price : num 12.9 29.2 25.9 30.8 23.7 14.2 19.9 22.6 26.3 33 ... $ Price : num 15.9 33.9 29.1 37.7 30 15.7 20.8 23.7 26.3 34.7 ... $ Max.Price : num 18.8 38.7 32.3 44.6 36.2 17.3 21.7 24.9 26.3 36.3 ... $ MPG.city : int 25 18 20 19 22 22 19 16 19 16 ... $ MPG.highway : int 31 25 26 26 30 31 28 25 27 25 ... $ AirBags : Factor w/ 3 levels "Driver & Passenger",..: 3 1 2 1 2 2 2 2 2 2 ... $ DriveTrain : Factor w/ 3 levels "4WD","Front",..: 2 2 2 2 3 2 2 3 2 2 ... $ Cylinders : Factor w/ 6 levels "3","4","5","6",..: 2 4 4 4 2 2 4 4 4 5 ... $ EngineSize : num 1.8 3.2 2.8 2.8 3.5 2.2 3.8 5.7 3.8 4.9 ... $ Horsepower : int 140 200 172 172 208 110 170 180 170 200 ... $ RPM : int 6300 5500 5500 5500 5700 5200 4800 4000 4800 4100 ... $ Rev.per.mile : int 2890 2335 2280 2535 2545 2565 1570 1320 1690 1510 ... $ Man.trans.avail : Factor w/ 2 levels "No","Yes": 2 2 2 2 2 1 1 1 1 1 ... $ Fuel.tank.capacity: num 13.2 18 16.9 21.1 21.1 16.4 18 23 18.8 18 ... $ Passengers : int 5 5 5 6 4 6 6 6 5 6 ... $ Length : int 177 195 180 193 186 189 200 216 198 206 ... $ Wheelbase : int 102 115 102 106 109 105 111 116 108 114 ... $ Width : int 68 71 67 70 69 69 74 78 73 73 ... $ Turn.circle : int 37 38 37 37 39 41 42 45 41 43 ... $ Rear.seat.room : num 26.5 30 28 31 27 28 30.5 30.5 26.5 35 ... $ Luggage.room : int 11 15 14 17 13 16 17 21 14 18 ... $ Weight : int 2705 3560 3375 3405 3640 2880 3470 4105 3495 3620 ... $ Origin : Factor w/ 2 levels "USA","non-USA": 2 2 2 2 2 1 1 1 1 1 ... $ Make : Factor w/ 93 levels "Acura Integra",..: 1 2 4 3 5 6 7 9 8 10 ...
上述结果表明数据集包含许多可以视为分类变量的因子变量。对于我们的模型,我们将考虑变量 "AirBags" 和 "Type"。在这里,我们的目标是找出所售汽车类型与其配备的 Air Bags 类型之间是否存在任何显著的相关性。如果观察到相关性,我们可以估计哪种类型的汽车与哪种类型的安全气囊搭配销售更好。
# Load the library. library("MASS") # Create a data frame from the main data set. car.data <- data.frame(Cars93$AirBags, Cars93$Type) # Create a table with the needed variables. car.data = table(Cars93$AirBags, Cars93$Type) print(car.data) # Perform the Chi-Square test. print(chisq.test(car.data))
当我们执行上述代码时,它会产生以下结果:
Compact Large Midsize Small Sporty Van Driver & Passenger 2 4 7 0 3 0 Driver only 9 7 11 5 8 3 None 5 0 4 16 3 6 Pearson's Chi-squared test data: car.data X-squared = 33.001, df = 10, p-value = 0.0002723 Warning message: In chisq.test(car.data) : Chi-squared approximation may be incorrect
结论
结果显示 p 值小于 0.05,这表明存在强相关性。
广告