R - Chi Square Test
Chi-Square testlà một phương pháp thống kê để xác định xem hai biến phân loại có mối tương quan đáng kể giữa chúng hay không. Cả hai biến đó phải từ cùng một quần thể và chúng phải được phân loại như - Có / Không, Nam / Nữ, Đỏ / Xanh lá, v.v.
Ví dụ: chúng ta có thể xây dựng một tập dữ liệu với các quan sát về cách mua kem của mọi người và cố gắng tương quan giới tính của một người với hương vị của loại kem mà họ thích. Nếu tìm thấy mối tương quan, chúng tôi có thể lập kế hoạch cho kho hương vị phù hợp bằng cách biết số lượng giới tính của những người ghé thăm.
Cú pháp
Chức năng được sử dụng để thực hiện kiểm tra chi-Square là chisq.test().
Cú pháp cơ bản để tạo kiểm tra chi-square trong R là:
chisq.test(data)
Sau đây là mô tả về các tham số được sử dụng:
data là dữ liệu ở dạng bảng chứa giá trị đếm của các biến trong quan sát.
Thí dụ
Chúng tôi sẽ lấy dữ liệu Cars93 trong thư viện "MASS" đại diện cho doanh số bán các mẫu xe hơi khác nhau trong năm 1993.
library("MASS")
print(str(Cars93))
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
'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 ...
Kết quả trên cho thấy tập dữ liệu có nhiều biến Nhân tố có thể được coi là biến phân loại. Đối với mô hình của chúng tôi, chúng tôi sẽ xem xét các biến "AirBags" và "Loại". Ở đây, chúng tôi mong muốn tìm ra mối tương quan đáng kể giữa các loại xe được bán và loại Túi khí mà xe có. Nếu quan sát được mối tương quan, chúng ta có thể ước tính loại ô tô nào có thể bán chạy hơn với những loại túi khí nào.
# 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))
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
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
Phần kết luận
Kết quả cho thấy giá trị p nhỏ hơn 0,05 cho thấy mối tương quan chuỗi.