Biểu đồ hồi quy tuyến tính bằng STATA, SPSS và R

13:28:00 29/12/2015

Có thể nói hồi quy tuyến tính đơn giản là phương pháp rất thường gặp trong nghiên cứu khoa học. Khi trình bày người phân tích chẳng những cung cấp cho người đọc các thông số quan trọng như hệ số tương quan (r), hệ số xác định bội (R2), chỉ số p, phương trình liên hệ…mà cần phải cung cấp thêm biểu đồ tương quan để người đọc có cái nhìn trực quan hơn.

Bài này tôi giới thiệu cách thiết kế biểu đồ tương quan bằng các phần mềm STATA, SPSS và R.

1. Phần mềm STATA.

Vào Graphics chọn Twoway graph (scatter, line, etc.)

Xuất hiện họp thoại Plot trên họp thoại này chọn:

  • Scatter
  • X variable: chọn biến độc lập.
  • Y variable: chọn biến độc phụ thuộc.

Sau đó chọn: Accept như hình dưới đây.

Biểu đồ xuất hiện dạng thô dưới đây

Trên họp thoại Graph-Graph có nhiều tùy chỉnh ta có thể đổi màu nền, chọn màu, kích thước và hình dạng của các dữ liệu cá thể, viết tên  nhãn, ký hiệu trục tung, trục hoành cho biểu đồ đẹp hơn.

Biểu đồ sau khi chỉnh sửa

2. Phần mềm SPSS

  • Vào Graphs chọn Legaci Dialogs chọn Interactive chọn Scatterplot.

 

Khi làm theo các thao tác trên sẽ xuất hiện họp thoại Create Scatterplot.

Trên họp thoại này, trục hoành chọn biến độc lập (tuoi), trên trục tung chọn biến phụ thuộc (fnbmd) sau đó bấm OK.

Các bước trên hoàn thành sẽ xuất hiện biểu đồ thô dưới đây. Cũng giống như STATA, ta chỉ cần nhấp đôi chuột vào biểu đổ sẽ xuất hiện cửa sổ có nhiều tùy chỉnh. Ta có thể chỉnh sửa biểu đồ chất lượng hơn.

Biểu đồ còn dạng thô

Biểu đồ sau chỉnh sửa

3. Phần mềm R.

Trên R thì thao tác phức tạp hơn nhưng cho biểu đồ có chất lượng tốt hơn. Trên R tôi giới thiệu cách thiết kế biểu đồ với gói ggplot2. Để tiện cho việc theo dõi tôi tạo biểu đồ theo từng “lớp” một.

# Gọi gói ggplot2

>library(ggplot2)

# Tạo biến cần vẽ: Trong phần này tôi muốn thiết kế biểu đồ tương quan theo gioi, màu theo gioi, kích thước theo fnbmd, trục tung là biến phụ thuộc (fnbmd), trục hoành là biến độc lập (age)

>p=ggplot(du,aes(y=fnbmd,x=age,col=gioi,size=fnbmd))

# Biểu đồ còn dạng thô.

> p+geom_point(aes())

# Tạo 2 đường trung bình theo giới.

>p+geom_point(aes())+geom_smooth(lwd=1)

# Xóa nền

>p+geom_point(aes())+geom_smooth(lwd=1)+theme_bw()

# Xóa viền chỉ còn lại trục hoành và trục tung.

>p+geom_point(aes())+geom_smooth(lwd=1)+theme_bw()+theme_classic()

# Thay đổi kích thước chữ

>p+geom_point(aes())+geom_smooth(lwd=1)+theme_bw()+theme_classic()+theme_classic(base_size = 15)

# Thay đổi trục

>p+geom_point(aes())+geom_smooth(lwd=1)+theme_bw()+theme_classic()+theme_classic(base_size = 15)+ylim(0.2,1.6)+xlim(60,100)

#Ghi chú 2 trục.

>p+geom_point(aes())+geom_smooth(lwd=1)+theme_bw()+theme_classic()+theme_classic(base_size = 15)+ylim(0.2,1.6)+ylim(60,100)+ylab("MĐCXĐ(g/cm^2)")+xlab("Tuổi")

# Thêm nhãn

>p+geom_point(aes())+geom_smooth(lwd=1)+theme_bw()+theme_classic()+theme_classic(base_size = 15)+ylim(0.2,1.6)+xlim(60,100)+ylab("MĐCXĐ(g/cm^2)")+xlab("Tuổi")+ggtitle("Tương quan giữa tuổi và\nMĐCXĐ theo giới")

Cuối cùng ta được biểu đồ chất lượng hơn.

 Bs Bùi Văn Dủ