messenger_logo
Liên hệ qua Messenger
SciEco

[Blog 001] - Ước lượng Hồi quy OLS với R

KH
Khanh Hoang
Ngày viết: 08/06/2023

Ordinary least squares (OLS) hay Bình phương nhỏ nhất là phương pháp hồi quy nhằm tìm được đường thẳng tốt nhất để mô tả mối liên hệ tuyến tính giữa biến độc lập và biến phụ thuộc.

OLS giúp ước lượng phương trình hồi quy sau:

ŷ = b0 + b1x

Trong đó:

Bước 1: Tạo dữ liệu

Tạo dataset có 2 biến với 15 quan sát như sau:

Lưu ý: 15 quan sát này trong thực tế là không đủ tin cậy để ước lượng hồi quy, tuy nhiên vì là ví dụ nên ta chấp nhận quy mô bộ dữ liệu này.

Thực hiện hồi quy OLS, với chi phí quảng cáo là biến độc lập, doanh thu là biến phụ thuộc:

1#create dataset
2chi_phi_quang_cao <- c(10, 15, 20, 25, 30, 35, 40, 45, 50, 55)
3doanh_thu <- c(100, 120, 150, 180, 210, 240, 260, 265, 267, 280)
4df <- data.frame(chi_phi_quang_cao, doanh_thu)
5
6#view dataset
7View(df)

Bước 2: Trực quan hoá

1library(ggplot2)
2
3#create scatter plot
4ggplot(df, aes(x=chi_phi_quang_cao, y=doanh_thu)) +
5	geom_point(size=2)

Một trong các giả định của hồi quy tuyến tính là có mối liên hệ tuyến tính giữa biến độc lập và biến phụ thuộc.

Từ biểu đồ có thể thấy mối liên hệ như sau: khi chi phí quảng cáo tăng, doanh thu cũng tăng tuyến tính theo.

Tiếp theo, ta có thể dùng boxplot để trực quan hóa phân phối doanh thu và kiểm tra các outliers.

Lưu ý: R xác định một quan sát là outlier nếu nó lớn hơn 1,5 lần tính từ phân vị mức 75 của phân phối hoặc nhỏ hơn 1,5 lần tính từ phân vị mức 25.

Nếu một quan sát là outlier, một vòng tròn nhỏ sẽ xuất hiện trong boxplot:

1library(ggplot2)
2
3#create scatter plot
4ggplot(df, aes(y=score)) +
5  geom_boxplot()

Không có vòng tròn nhỏ nào ở hai đầu boxplot, điều đó có nghĩa là không có giá trị outliers nào trong dataset này.

Bước 3: Thực hiện hồi quy OLS

Sử dụng hàm lm() trong R để thực hiện hồi quy OLS, sử dụng chi_phi_quang_cao làm biến độc lập và doanh_thu làm biến phụ thuộc:

1#fit simple linear regression model
2m1 <- lm(doanh_thu~chi_phi_quang_cao, data=df)
3
4#view model summary
5summary(m1)

Kết quả thu được

1Call:
2lm(formula = doanh_thu ~ chi_phi_quang_cao, data = df)
3
4Residuals:
5     Min       1Q   Median       3Q      Max
6-22.4909 -12.7909   0.1515  11.2561  22.2121 
7
8Coefficients:
9                  Estimate Std. Error t value Pr(>|t|)    
10(Intercept)        69.5576    12.9789   5.359 0.000678 ***
11chi_phi_quang_cao   4.2352     0.3653  11.594 2.78e-06 ***
12---
13Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
14
15Residual standard error: 16.59 on 8 degrees of freedom
16Multiple R-squared:  0.9438,	Adjusted R-squared:  0.9368 
17F-statistic: 134.4 on 1 and 8 DF,  p-value: 2.785e-06

Từ model summary, có thể thấy phương trình hồi quy phù hợp là:

doanh_thu = 69.5576 + 4.2352(chi_phi_quang_cao)

Điều này có nghĩa là mỗi đồng chi phí quảng cáo tăng lên sẽ ảnh hưởng và làm tăng trung bình 4.2352 đồng doanh thu.

Hệ số gốc 69.5576 cho biết doanh thu trung bình dự kiến khi không có chi phí quảng cáo.

Ta cũng có thể sử dụng phương trình này để tìm doanh thu dự kiến dựa trên chi phí quảng cáo có được.

Ví dụ: nếu dùng 100 đồng chi phí quảng cáo thì doanh thu sẽ là:

doanh_thu = 69.5576 + 4.2352(100) = 493.0776

Đây là cách giải thích phần còn lại của model summary:

Bước 4: Trực quan đường hồi quy

1ggplot(df, aes(x=chi_phi_quang_cao, y=doanh_thu)) +    
2	geom_point(size=2) +    
3	geom_smooth(method = "lm", se = F)

Bước 5: Residual Plots

Cuối cùng, ta cần vẽ các biểu đồ phân tích phần dư để kiểm tra các giả định về homoscedasticity và normality.

Giả định về homoscedasticity hay phương sai đồng nhất là phần dư của mô hình hồi quy có phương sai gần như bằng nhau ở mỗi cấp độ của một biến phụ thuộc.

Để kiểm tra giả định này, ta có thể tạo một biểu đồ phần dư so với giá trị fitted hay residuals vs. fitted plot.

Trục x hiển thị các giá trị fitted và trục y hiển thị phần dư. Nếu phần dư được phân phối ngẫu nhiên và đồng đều trong biểu đồ xung quanh giá trị 0, ta có thể giả định rằng homoscedasticity không bị vi phạm:

1#define residuals
2residuals <- resid(m1)
3
4#produce residual vs. fitted plot
5plot(fitted(m1), residuals)
6
7#add a horizontal line at 0 
8abline(0,0)

Phần dư gần như được rải ngẫu nhiên xung quanh 0 và không thể hiện bất kỳ patterns đáng chú ý nào, vì vậy giả định này được đáp ứng.

Giả định về normality chỉ ra rằng phần dư của một mô hình hồi quy gần như có phân phối chuẩn.

Để kiểm tra xem giả định này có được đáp ứng hay không, chúng ta có thể tạo biểu đồ Q-Q hay Q-Q plot. Nếu các điểm trong biểu đồ nằm dọc theo đường lý thuyết gần như thẳng ở góc 45 độ, thì dữ liệu được phân phối chuẩn:

1#create Q-Q plot for residuals
2qqnorm(residuals)
3
4#add a straight diagonal line to the plot
5qqline(residuals)

Ta thấy phần dư chệch khỏi đường 45 độ một chút, nhưng không đủ lớn. Chúng ta có thể kết luận rằng giả định được đáp ứng.

Vì phần dư được phân phối chuẩn và phương sai đồng nhất, ta đã xác minh rằng các giả định của mô hình hồi quy OLS được đáp ứng.

Do đó, đầu ra từ mô hình của này là đáng tin cậy.

Lưu ý: Nếu một hoặc nhiều giả định không được đáp ứng, ta có thể thử chuyển đổi dữ liệu.


Bài viết khác
Stata cung cấp một phương thức đơn giản và tinh tế để thực hiện các mô hình hồi quy Bayes bằng cách thêm tiền tố bayes vào trước các lệnh ước lượng. Với hơn 45 lệnh được hỗ trợ, người dùng có thể linh hoạt lựa chọn giữa các phân phối tiền nghiệm mặc định hoặc tự thiết lập theo nhu cầu nghiên cứu. Trong bài viết này, chúng ta sẽ tìm hiểu cách áp dụng hồi quy logistic Bayes và khám phá sức mạnh của phân phối tiền nghiệm Cauchy đối với các hệ số hồi quy. Một thách thức phổ biến khi làm việc với Bayes là việc lựa chọn phân phối tiền nghiệm. Cách tiếp cận thận trọng thường dùng các tiền nghiệm yếu hoặc không có thông tin để đảm bảo tính khách quan dựa trên dữ liệu. Tuy nhiên, các tiền nghiệm không có thông tin đôi khi không đủ để giải quyết những vấn đề như hiện tượng phân tách hoàn hảo trong hồi quy logistic. Ngược lại, nếu không có kiến thức chuyên gia sâu sắc, việc chọn tiền nghiệm có thông tin cũng không hề dễ dàng. Dựa trên khuyến nghị của Gelman và các cộng sự, việc sử dụng phân phối tiền nghiệm Cauchy thông tin yếu là một giải pháp cân bằng hiệu quả. Chuẩn bị dữ liệu và chuẩn hóa Chúng ta sử dụng bộ dữ liệu Iris nổi tiếng để phân loại hoa. Biến phụ thuộc virg phân biệt loài Iris virginica với các loài khác. Các biến độc lập bao gồm chiều dài và chiều rộng của đài hoa và cánh hoa. Theo khuyến nghị của các nhà nghiên cứu, các biến độc lập nên được chuẩn hóa để có trung bình bằng 0 và độ lệch chuẩn bằng 0.5 trước khi áp dụng phân phối tiền nghiệm Cauchy.
Trong bài viết này, bạn sẽ tìm hiểu kiểm định t là gì và cách thực hiện phương pháp này trong ngôn ngữ lập trình r. Đầu tiên, chúng ta sẽ làm quen với một hàm đơn giản giúp thực hiện kiểm định chỉ với một dòng mã nguồn. Sau đó, chúng ta sẽ cùng khám phá bản chất của kiểm định thông qua việc xây dựng từng bước với dữ liệu thực tế về hành khách tàu Titanic. Kiểm định t là gì Kiểm định t là một quy trình thống kê được sử dụng để kiểm tra xem sự khác biệt giữa hai nhóm có ý nghĩa hay chỉ là do ngẫu nhiên. Trong bài viết này, chúng ta sẽ xem xét dữ liệu từ các hành khách trên tàu Titanic, chia họ thành hai nhóm nam và nữ. Giả sử chúng ta muốn kiểm tra giả thuyết rằng nam giới và nữ giới có độ tuổi trung bình như nhau. Nếu dữ liệu cho thấy phụ nữ trẻ hơn nam giới trung bình 2 tuổi, chúng ta cần đặt câu hỏi: liệu đây là một sự khác biệt thực sự hay chỉ là sự trùng hợp ngẫu nhiên? Kiểm định t sẽ giúp chúng ta trả lời câu hỏi đó. Tại sao kiểm định t lại quan trọng
SciEco
Science for Economics
Định hướng đào tạo phân tích dữ liệu, xây dựng chính sách, tối ưu hoá danh mục tài chính cá nhân và dự báo thị trường.
Liên hệ
Địa chỉ: Số 60, ngõ 41, Phố Thái Hà, Trung Liệt, Đống Đa, Hà Nội (Google Map)
Email: science.for.economics@gmail.com
Hotline: 03.57.94.7680 (Mrs. Hà)
Mạng xã hội