1. Lớp Phương pháp NCKH – Chương trình CUD UPNT03
Baøi 4 (STATA)
SỬ DỤNG STATA 10.0 ĐỂ PHÂN TÍCH THỐNG KÊ
TRONG NGHIÊN CỨU KHOA HỌC
PHÂN TÍCH PHƯƠNG SAI (ONE-WAY ANOVA),
TƯƠNG QUAN VÀ HỒI QUI TUYẾN TÍNH
TS. BS Tăng Kim Hồng
1. Phân tích phương sai
- Mở file “PULSE” để phân tích.
- Lệnh sử dụng trong STATA như sau:
+ Statistics -> Linear models and related -> ANOVA/MANOVA -> One-way ANOVA ->
Chọn biến số cần kiểm định (response variable) và biến số phân nhóm (factor variable)
-> Chọn loại test so sánh giữa các nhóm (Multiple-comparison tests) -> Submit
(Giả sử giả định về phân phối bình thường của biến số đã được thỏa)
1
2. Lớp Phương pháp NCKH – Chương trình CUD UPNT03
. oneway weight activity, bonferroni scheffe tab
| Summary of weight
activity | Mean Std. Dev. Freq.
------------+------------------------------------
0 | 66 0 1
1 | 65.888889 12.830086 9
2 | 63.360656 10.773475 61
3 | 65.047619 9.2977212 21
------------+------------------------------------
Total | 64.021739 10.53198 92
Analysis of Variance
Source SS df MS F Prob > F
------------------------------------------------------------------------
Between groups 84.0496781 3 28.0165594 0.25 0.8638
Within groups 10009.9068 88 113.748941
------------------------------------------------------------------------
Total 10093.9565 91 110.922599
Bartlett's test for equal variances: chi2(2) = 1.2830 Prob>chi2 =
0.527
note: Bartlett's test performed on cells with positive variance:
1 single-observation cells not used
2
3. Lớp Phương pháp NCKH – Chương trình CUD UPNT03
Comparison of weight by activity
(Bonferroni)
Row Mean-|
Col Mean | 0 1 2
---------+---------------------------------
1 | -.111111
| 1.000
|
2 | -2.63934 -2.52823
| 1.000 1.000
|
3 | -.952381 -.84127 1.68696
| 1.000 1.000 1.000
Comparison of weight by activity
(Scheffe)
Row Mean-|
Col Mean | 0 1 2
---------+---------------------------------
1 | -.111111
| 1.000
|
2 | -2.63934 -2.52823
| 0.996 0.931
|
3 | -.952381 -.84127 1.68696
| 1.000 0.998 0.942
Giá trị p của Bartlett’s test (test chứng minh phương sai bằng nhau) = 0.527 tức là lớn
hơn giá trị 0.05 rất nhiều, cho thấy rằng phương sai của các nhóm vận động thể lực là
tương tự nhau. Giá trị p của F test = 0.8638, chứng tỏ rằng trung bình cân nặng của các
nhóm vận động thể lực là không khác nhau.
Kết quả của test so sánh các nhóm với nhau Bonferroni hay Scheffe đều cho kết quả
tương tự. Điều này gợi ý rằng không có sự khác biệt một cách có ý nghĩa của trung bình
cân nặng giữa các nhóm có hoạt động thể lực khác nhau.
2. Tương quan
- Mở file “PULSE” để phân tích.
- Trước khi tính hệ số tương quan, chúng ta nên vẽ 1 đồ thị scatterplot để khảo sát bằng
mắt sự liên quan giũa 2 biến số
- Lệnh sử dụng trong STATA: scatter y x, trong đó biến số y tạo thành trục tung và biến
số x tạo thành trục hoành. Giả sử ta khảo sát sự liên quan giữa 2 biến số pulse1 và pulse2.
. twoway (scatter pulse2 pulse1)
3
4. Lớp Phương pháp NCKH – Chương trình CUD UPNT03
120
100
pulse2
80
60
40
50 60 70 80 90 100
pulse1
Đồ thị scatter plots cho thấy có sự liên quan tuyến tính giữa 2 biến số pulse1 và pulse2.
4
5. Lớp Phương pháp NCKH – Chương trình CUD UPNT03
Như trong phần lý thuyết chúng ta đã biết: nếu biến số x và y phân phối bình thường thì
tương quan giữa 2 biến số sẽ được tính bằng hệ số tương quan r – hay còn gọi hệ số
tương quan Pearson, hay còn gọi product moment correlation coeficient.
Nếu 2 biến số x và y phân phối không bình thường thì tương quan sẽ được tính bằng hệ
số tương quan Spearman
- Để tính hệ số tương quan Pearson, lệnh trong STATA như sau:
+ Statistics -> Summaries, tables, and tests -> Summary and descriptive statistics ->
Correlations and covariances -> Chọn biến số cần tính tương quan -> Submit
5
6. Lớp Phương pháp NCKH – Chương trình CUD UPNT03
- Kết quả có được như sau:
. correlate pulse1 pulse2
(obs=90)
| pulse1 pulse2
-------------+------------------
pulse1 | 1.0000
pulse2 | 0.5999 1.0000
Không giống như nhiều phần mềm khác, STATA không cho biết giá trị p của phép kiểm
chứng minh hệ số tương quan này khác không, do đó ta phải dùng cách khác để tính giá
trị p này. Trong trường hợp này p <0.001, do đó ta có thể kết luận rằng 2 biến số này thật
sự tương quan với nhau với hệ số tương quan = 0.60.
- Để tính hệ số tương quan Spearman, lệnh trong STATA như sau:
+ Statistics -> Summaries, tables, and tests -> Non-parametric tests of hypotheses ->
Spearman’s rank correlation -> Chọn biến số cần tính tương quan -> Submit
6
8. Lớp Phương pháp NCKH – Chương trình CUD UPNT03
- Kết quả có được như sau:
. spearman pulse1 pulse2, stats(rho)
Number of obs = 90
Spearman's rho = 0.6393
Test of Ho: pulse1 and pulse2 are independent
Prob > |t| = 0.0000
Trong trường hợp này, STATA cho biết giá trị p của phép kiểm chứng minh hệ số tương
quan này khác không, do đó ta phải dùng cách khác để tính giá trị p này. Trong trường
hợp này p <0.001, do đó ta có thể kết luận rằng 2 biến số này thật sự tương quan với nhau
với hệ số tương quan = 0.64
3. Hồi qui tuyến tính đơn giản
3.1 Phương trình hối qui tuyến tính
- Trước khi báo cáo kết quả của hồi qui tuyến tính, chúng ta phải đảm bảo rằng dữ liệu đã
thỏa các giả định (xem phần lý thuyết)
- Mở file “PULSE” để phân tích.
- Cũng giống như khi tính hệ số tương quan, trước tiên chúng ta nên vẽ 1 đồ thị
scatterplot của Y (trục tung) theo X (trục hoành).
- Giả sử ta khảo sát phương trình hồi qui của biến số chiều cao trên biến số cân nặng (cân
nặng là biến số kết quả còn chiều cao là biến số giải thích)
. twoway (scatter weight height)
100
80
weight
60
40
150 160 170 180 190
height
- Để thực hiện regression, lệnh trong STATA như sau:
8
9. Lớp Phương pháp NCKH – Chương trình CUD UPNT03
+ Statistics -> Linear model and related -> Linear regression -> Chọn biến số cần làm
regression -> Submit
9
10. Lớp Phương pháp NCKH – Chương trình CUD UPNT03
- Kết quả có được như sau:
. regress weight height
Source | SS df MS Number of obs = 92
-------------+------------------------------ F( 1, 90) = 142.15
Model | 6180.73703 1 6180.73703 Prob > F = 0.0000
Residual | 3913.21949 90 43.4802166 R-squared = 0.6123
-------------+------------------------------ Adj R-squared = 0.6080
Total | 10093.9565 91 110.922599 Root MSE = 6.594
------------------------------------------------------------------------------
weight | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
height | .9015106 .075613 11.92 0.000 .7512921 1.051729
_cons | -90.59713 12.98666 -6.98 0.000 -116.3974 -64.79685
------------------------------------------------------------------------------
Phần trên của bảng cho ta kết quả của sum of square (thường là không sử dụng). Chúng
ta biết được số đối tượng khảo sát là 92. Kết quả của R-squared = 0.6123, cho chúng ta
biết 61% cân nặng được giải thích bằng mối liên quan tuyến tính với chiều cao.
Phần dưới của bảng kết quả cho ta con số ước lượng của Y intercept - (a) (trong bảng kết
quả, nó được hiểu là “_cons”) và độ dốc - β. Phương trình hồi qui như sau:
cân nặng = -90.6 + 0.9 × chiều cao.
Với phép kiểm H0: β = 0, số thống kê tính được t = 11.9, có p < 0.001, do đó ta loại bỏ
giả thiết H0 cho rằng độ dốc bằng 0, và kết luận rằng thật sự có mối liên quan tuyến tính
một cách có ý nghĩa giữa chiều cao và cân nặng.
3.2 Tiên đoán kết quả sau khi chạy lệnh regression
Sau khi chúng ta chạy lệnh regress, STATA sẽ lưu trữ các hệ số được ước lượng và các
sai số chuẩn trong các biến số gọi là “biến số hệ thống”. Các biến số hệ thống này sẽ
10
11. Lớp Phương pháp NCKH – Chương trình CUD UPNT03
được lưu lại trong bộ nhớ cho đến khi chúng ta chạy lệnh regression khác. Các “biến số
hệ thống” này sẽ được sử dụng bởi các lệnh “predict” để tính:
• giá trị tiên đoán (predicted values),
• số dư (residuals),
• sai số chuẩn của giá trị trung bình được ước lượng của Y,
• sai số chuẩn của giá trị được ước lượng của Y.
Ví dụ để tạo ra một biến số mới được gọi là “pweigh” có chứa các giá trị tiên đoán cân
nặng dựa trên chiều cao trong bộ số liệu, ta dùng lệnh sau:
predict pweight
* Lưu ý: Lệnh predict không tạo ra kết quả nào hết, để thấy được kết quả của việc tạo ra
pweight ta dùng lệnh sum
sum weight pweight
. sum weight pweight
Variable | Obs Mean Std. Dev. Min Max
-------------+--------------------------------------------------------
weight | 92 64.02174 10.53198 42 95
pweight | 92 64.02174 8.24137 46.43248 77.98535
4. Hồi qui tuyến tính đa biến
Bài tập: Giả sử chúng ta muốn khảo sát cân nặng ở trẻ em suy dinh dưỡng thay đổi theo
chiều cao và tuổi như thế nào. Biến số kết quả (outcome) là y = wgt và biến số giải thích
là x1 = hgt và x2 = age. Một mẫu ngẫu nhiên 12 trẻ được rút ra từ số trẻ bệnh của trại A.
Cân nặng (wgt), chiều cao (hgt) và tuổi (age) như sau:
Cân nặng (wgt) Chiều cao (hgt) Tuổi (age)
64 57 8
71 59 10
53 49 6
67 62 11
55 51 8
58 50 7
77 55 10
57 48 9
56 42 10
51 42 6
76 61 12
68 57 9
- Lệnh sử dụng trong STATA:
+ Statistics -> Multivariate analysis -> MANOVA, multivariate regression and related
-> Multivariate regression -> Nhập biến số cần chạy regression -> Submit
regress wgt hgt age
11
12. Lớp Phương pháp NCKH – Chương trình CUD UPNT03
- Kết quả có được như sau:
. regress wgt hgt age
Source | SS df MS Number of obs = 12
-------------+------------------------------ F( 2, 9) = 15.95
Model | 692.822607 2 346.411303 Prob > F = 0.0011
Residual | 195.427393 9 21.7141548 R-squared = 0.7800
-------------+------------------------------ Adj R-squared = 0.7311
Total | 888.25 11 80.75 Root MSE = 4.6598
------------------------------------------------------------------------------
wgt | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
hgt | .722038 .2608051 2.77 0.022 .1320559 1.31202
age | 2.050126 .9372256 2.19 0.056 -.0700253 4.170278
_cons | 6.553048 10.94483 0.60 0.564 -18.20587 31.31197
------------------------------------------------------------------------------
Kết quả cho thấy F = 346.41/21.71 = 15.96 với (2,9) độ tự do. Giá trị p của F-test =
0.0011 gợi ý rằng chúng ta nên loại bỏ H0 và kết luận là có 1 tỉ lệ đáng kể thay đổi của
cân nặng được giải thích bởi chiều cao và tuổi.
R-squared = 0.78, cho chúng ta biết chiều cao và tuổi giải thích được 78% sự thay đổi
của cân nặng được giải thích bằng mối liên quan tuyến tính với chiều cao.
Adjusted R-square là tỉ lệ thay đổi của y được giải thích bằng phương trình hồi qui. Ở
đây, adjusted R-square = 0.73, cho thấy sau khi hiệu chỉnh R cho 2 biến số được đưa vào
mô hình, chúng ta có thể giải thích được khoảng 73% sự thay đổi của y.
Phương trình hồi qui sẽ có a= 6.55, b1 = 0.72, b2 = 2.05
Điều này có nghĩa là nếu chiều cao = 0, tuổi = 0 thì cân nặng là 6.55 pounds. Hoặc cứ
chiều cao tăng 1cm thì cân nặng tăng 0.72 pounds (nếu tuổi giữ nguyên), hoặc nếu tuổi
tăng 1 năm thì cân nặng tăng 2.95 pounds (nếu chiều cao giữ nguyên).
12
13. Lớp Phương pháp NCKH – Chương trình CUD UPNT03
BÀI TẬP THỰC HÀNH
Bài tập 1
Sử dụng file “lowbwt” để trả lời những câu hỏi sau đây:
a) Tạo ra đồ thị two-way scatter plot của biến số sbp (HA tâm thu) và gestage (tuổi
thai).
b) Đồ thị có đưa ra gợi ý gì về mối liên quan những biến số này không?
c) Giả sử sbp là biến số kết quả, hãy viết phương trình hồi qui thể hiện mối liên quan
giữa sbp và tuổi thai. Diễn giải the slope and the y-intercept of the line.
d) Ở mức ý nghĩa 0.05, hãy kiểm định giả thiết H0: β = 0.
e) Hãy tiên đoán HA tâm thu của thai phụ có tuổi thai là 31 tuần
Bài tập 2
1) Hãy dùng STATA để nhập số liệu sau, trong đó:
Y = Trung bình huyết áp động mạch (mm Hg)
X1 = Tuổi (năm)
X2 = Cân nặng (kg)
X3 = Diện tích bề mặt cơ thể (m2)
X4 = Thời gian bị CHA (năm)
X5 = Mạch (lần/phút)
X6 = Số đo mức độ tress
2) Những biến số nào liên quan một cách có ý nghĩa với trung bình huyết áp động mạch
13