R - Phân tích phương sai

Chúng tôi sử dụng phân tích hồi quy để tạo ra các mô hình mô tả tác động của sự thay đổi trong các biến dự báo lên biến phản hồi. Đôi khi, nếu chúng ta có một biến phân loại với các giá trị như Có / Không hoặc Nam / Nữ, v.v. Phân tích hồi quy đơn giản cho nhiều kết quả cho mỗi giá trị của biến phân loại. Trong trường hợp như vậy, chúng ta có thể nghiên cứu ảnh hưởng của biến phân loại bằng cách sử dụng nó cùng với biến dự báo và so sánh các đường hồi quy cho mỗi cấp của biến phân loại. Phân tích như vậy được gọi làAnalysis of Covariance cũng được gọi là ANCOVA.

Thí dụ

Hãy xem xét các mtcars trong tập dữ liệu R. Trong đó, chúng tôi nhận thấy rằng trường "am" đại diện cho loại hộp số (tự động hoặc thủ công). Nó là một biến phân loại với các giá trị 0 và 1. dặm một giá trị gallon (mpg) của một chiếc xe cũng có thể phụ thuộc vào nó bên cạnh những giá trị của mã lực ( "hp").

Chúng tôi nghiên cứu ảnh hưởng của giá trị "am" đến hồi quy giữa "mpg" và "hp". Nó được thực hiện bằng cách sử dụngaov() theo sau là hàm anova() hàm để so sánh nhiều hồi quy.

Dữ liệu đầu vào

Tạo khung dữ liệu chứa các trường "mpg", "hp" và "am" từ mtcars tập dữ liệu. Ở đây chúng tôi lấy "mpg" làm biến phản hồi, "hp" làm biến dự đoán và "am" là biến phân loại.

input <- mtcars[,c("am","mpg","hp")]
print(head(input))

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:

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

Phân tích ANCOVA

Chúng tôi tạo mô hình hồi quy lấy "hp" làm biến dự đoán và "mpg" làm biến phản hồi có tính đến tương tác giữa "am" và "hp".

Mô hình có sự tương tác giữa biến phân loại và biến dự báo

# Get the dataset.
input <- mtcars

# Create the regression model.
result <- aov(mpg~hp*am,data = input)
print(summary(result))

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:

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

Kết quả này cho thấy cả hai mã lực và loại truyền có ảnh hưởng quan trọng trên dặm cho mỗi gallon như giá trị p trong cả hai trường hợp là nhỏ hơn 0,05. Nhưng sự tương tác giữa hai biến này không có ý nghĩa vì giá trị p lớn hơn 0,05.

Mô hình không có sự tương tác giữa biến phân loại và biến dự báo

# Get the dataset.
input <- mtcars

# Create the regression model.
result <- aov(mpg~hp+am,data = input)
print(summary(result))

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:

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

Kết quả này cho thấy cả hai mã lực và loại truyền có ảnh hưởng quan trọng trên dặm cho mỗi gallon như giá trị p trong cả hai trường hợp là nhỏ hơn 0,05.

So sánh hai mô hình

Bây giờ chúng ta có thể so sánh hai mô hình để kết luận xem liệu sự tương tác của các biến có thực sự đáng kể hay không. Đối với điều này, chúng tôi sử dụnganova() chức năng.

# 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))

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:

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

Khi giá trị p lớn hơn 0,05, chúng tôi kết luận rằng sự tương tác giữa sức ngựa và kiểu truyền tải là không đáng kể. Vì vậy, số dặm trên mỗi gallon sẽ phụ thuộc một cách tương tự vào sức ngựa của xe ở cả chế độ hộp số tự động và số tay.