ứng dụng phần mềm R trong phân tích thống kê
Trang 1Phân tích phương sai
Phân tích phương sai là một trong những nội dung của thống kê phân tích Nội dung cơ bản củaphân tích phương sai về mặt kĩ thuật là tìm cách phân chia tổng sai số bình phương của một biến ngẫu nhiên X thành những bộ phận khác nhau, mà mỗi bộ phận này phản ánh tổng bình phương sai số của X theo một đặc trưng nào đó Đặc trưng được xác định tuỳ thuộc vào mục đích nghiên cứu thống kê Với phần này chúng ta sẽ bắt đầu bằng một phân tích đơn giản, sau
đó sẽ xem đến phân tích phương sai hai chiều, các phương pháp phi tham số thông dụng.11.1 phân tích phương sai đơn giản (one-way analysis of variance- ANOVA)
Ví dụ 1 Bảng thống kê dưới đây đưa ra mật độ dân số 4 miền của một tỉnh Đvt: ng/km2
qs
F1(Bắc
)
F2(Nam)
F3(Tây)
KĐGT: Ho: α1 = α2 = α3 = α4
H1: có một khác biệt giữa 4 αj (j=1,2,3,4)
11.1.1 Mô hình phân tích phương sai
Gọi mật độ dân số mỗi miền của mỗi quan sát thứ i thuộc nhóm j là
thuộc nhóm j (j = 1, 2, 3) là xij Mô hình phân tích
Trang 2phương sai phát biểu rằng:
Với lý thuyết về mô hình phân tích phương sai, sử dụng Excel, với bậc tự do k-1 và N-k ta có
được một bảng phân tích phương sai (ANOVA table) như sau:
Tổng bình phương sai số cho toàn bộ mẫu là: TSS= WSS+GSS= 83514.96
Tổng bình phương sai số giữa các trung bình nhóm và trung bình chung là GSS= 48022.79
Tổng bình phương sai số của giá trị cá biệt với trung bình nhóm là WSS= 35492.17
Trang 311.1.2 Phân tích phương sai đơn giản với R
Tất cả các tính toán trên tương đối rườm rà, và tốn khá nhiều thời gian Tuy nhiên với R,các tính toán đó có thể làm trong vòng 1 giây, sau khi dữ liệu đã được chuẩn bị đúngcách
(a) Nhập dữ liệu với bộ số liệu “tr134.csv” chúng ta cần nhập dữ liệu vào R bằng
lệnh read.csv()
Ta thực hiện các lệnh trong R như sau:
Trong hàm lm() trên chúng ta cho R biết biến tr1 là một hàm số của group Gọi kết quả phân tích là analysis
(b) Kết quả phân tích phương sai Bây giờ chúng ta dùng lệnh anova để biết kết quả
phân tích:
Trang 4Trong kết quả có 3ba cột: Df( Degrees of freedom) là bậc tự do; Sum Sq là tổng bình phương( sum of squares), Mean Sq là trung bình bình phương ( mean square); F value là
giá trị được tính F= GSS/(k −1)
WSS /(n−k ) ; và Pr(>F) là trị số P liên quan đến kiểm định F.Dòng group trong kết quả trên có nghĩa là bình phương giữa các nhóm (GSS) và residual là bình phương trong mỗi nhóm (WSS)
Trị số p=0.0005568 có nghĩa là tín hiệu cho thấy có sự khác biệt về mật độ dân số giừa
Trang 5Để ước tính thông số αj_mũ, R đặt α1_mũ =0, và α2-mũ= α2_mũ - α1_mũ = -85.33, vớisai số chuẩn là 24.32 và kiểm định t= -85.33/24.32=-3.509 với trị số p=0.00221 Nói cách khác, so với nhóm 1(miền Bắc), mật độ dân số trung bình miền Nam thấp hơn, có
ý nghĩa thống kê
Tương tự so với miền Bắc, mật độ đân số trung bình miền Tây ( p=0.00131) và Cận Tây(p=8.00e-05) thấp hơn, có ya nghĩa thống kê
11.2 So sánh nhiều nhóm ( multiple comparisons) và điều chỉnh trị số p
Cho k nhóm, chúng ta có ít nhất là k(k-1)/2 so sánh Ví dụ trên có 4 nhóm, cho
nên tổng số so sánh khả dĩ là 6 (giữa nhóm 1 và 2, nhóm 1 và 3,nhóm 1 và 4, nhóm 2 và 3, nhóm 2 và 4, nhóm 3 và 4 ) Khi k=10, số lần so sánh có thể lên rất cao Trong trường hợp
có nhiều so sánh, chúng ta cần phải điều chỉnh trị số p sao cho hợp lí
Có khá nhiều phương pháp điều chỉnh trị số p, và 4 phương pháp thông dụng nhấtlà: Bonferroni, Scheffé, Holm và Tukey (tên của 4 nhà thống kê học danh tiếng).Phương pháp nào thích hợp nhất? Không có câu trả lời dứt khoát cho câu hỏi này, nhưnghai điểm sau đây có thể giúp chúng ta quyết định tốt hơn:
(a) Nếu k < 10, chúng ta có thể áp dụng bất cứ phương pháp nào để điều
chỉnh trị số p Riêng cá nhân tôi thì thấy phương pháp Tukey thườngrất hữu ích trong so sánh
(b) Nếu k>10, phương pháp Bonferroni có thể trở nên rất “bảo thủ” Bảo
thủ ở đây có nghĩa là phương pháp này rất ít khi nào tuyên bố một sosánh có ý nghĩa thống kê, dù trong thực tế là có thật! Trong trườnghợp này, hai phương pháp Tukey, Holm và Scheffé có thể áp dụng
Trang 6Ở đây, tôi sẽ không giải thích lí thuyết đằng sau các phương pháp này mà sẽ chỉ cách sử dụng R để tiến hành các so sánh theo phương pháp của Tukey.
Quay lại ví dụ trên, các trị số p trên đây là những trị số chưa được điều chỉnh cho
so sánh nhiều lần Trong chương về trị số p, tôi đã nói các trị số này phóng đại ý nghĩathống kê, không phản ánh trị số p lúc ban đầu (tức 0.05) Để điều chỉnh cho nhiều sosánh, chúng ta phải sử dụng đến phương pháp điều chỉnh Bonferroni
Chúng ta có thể dùng lệnh pairwise.t.test để có được tất cả các trị số p sosánh giữa bốn nhóm như sau:
Kết quả trên cho thấy trị số p giữa nhóm 1( Bắc) và nhóm 2(Tây) là 0.01327( tức có ý nghĩa thống kê); giữa nhóm 1 và 3 là 0.00784 (có ý nghĩa thống kê); nhóm 1 và 4 là 0.00048( có ý nghĩa thống kê); còn giữa các nhóm 2 và3, 2 và 4, 3 và 4 đều là 1( tức không có ý nghĩa thống kê)
Một phương pháp điều chỉnh trị số p khác có tên là Holm:
Kết quả này kũng không khác so với phương pháp Bonferroni
Tất cả các phương pháp so sánh trên sử dụng một sai số chuẩn chung cho cả 4 nhóm Nếu chúng ta muốn sử dụng cho từng nhóm thì lệnh sau đây(pool.sd=F) sẽ đáp ứng yêu cầu đó:
Trang 7Một lần nữa kết quả này cũng không làm thay đổi kết luận.
11.2.1 So sánh nhiều nhóm bằng phương pháp Tukey
Trong các phương pháp trên, chúng ta chỉ biết trị số p so sánh giữa các nhóm,nhưng không biết mức độ khác biệt cũng như khoảng tin cậy 95% giữa các nhóm Để cónhững ước số này, chúng ta cần đến một hàm khác có tên là aov (viết tắt từ analysis ofvariance) và hàm TukeyHSD (HSD là viết tắt từ Honest Significant Difference, tạm dịchnôm na là “Khác biệt có ý nghĩa thành thật”) như sau:
Kết quả trên cho thấy nhóm 2 và nhóm 1 khác nhau khoảng 85 đơn vị, và khoảng tin cậy 95%
từ -153 đến -17 Tượng tự nhóm 3 và nhóm 1 khác nhau khoảng 90 đơn vị, và khoảng tin cậy 95% từ -158 đến -22; nhóm 4 và nhóm 1 khác nhau 120 đơn vị, và khoảng tin cậy 95% từ -188đến -51
Trang 9Phương pháp so sánh nhiều nhóm phi tham số (non-parametric statistics) tươngđương với phương pháp phân tích phương sai là Kruskal-Wallis Cũng như phương phápWilcoxon so sánh hai nhóm theo phương pháp phi tham số, phương pháp Kruskal-Walliscũng biến đổi số liệu thành thứ bậc (ranks) và phân tích độ khác biệt thứ bậc này giữa cácnhóm Hàm kruskal.test trong R có thể giúp chúng ta trong kiểm định này:
Trị số p từ kiểm định này khá thấp (p = 0.006463) cho thấy có sự khác biệt giữabốn nhóm như phân tích phương sai qua hàm lm trên đây Tuy nhiên, một bất tiện củakiểm định phi tham số Kruskal-Wallis là phương pháp này không cho chúng ta biết hainhóm nào khác nhau, mà chỉ cho một trị số p chung Trong nhiều trường hợp, phân tích
Trang 10phi tham số như kiểm định Kruskal-Wallis thường không có hiệu quả như các phươngpháp thống kê tham số (parametric statistics).
11.4 Phân tích phương sai hai chiều( two-way analysis of variance-ANOVA)
Phân tích phương sai đơn giản hay một chiều chỉ có một yếu tố (factor) Nhưng
phân tích phương sai hai chiều (two-way ANOVA), như tên gọi, có hai yếu tố Phương
pháp phân tích phương sai hai chiều chỉ đơn giản khai triển từ phương pháp phân tíchphương sai đơn giản Thay vì ước tính phương sai của một yếu tố, phương pháp phân saihai chiều ước tính phương sai của hai yếu tố
ví dụ 2 Quan sát 3 công nhân được đào tạo ở 3 cơ sở đào tạo, có cùng bậc thợ, làm việc trên 10
máy cùng loại của 10 cơ sở khác nhau.Có số liệu về số sản phẩm trong ca (X) như sau:
Mô hình phân tích phương sai :
µ là số trung bình cho toàn quần thể, các hệ số αi( ảnh hưởng của loạ máy) và βj ( ảnh hưởng củaj ( ảnh hưởng củacông nhân j) cần phải ước tính từ số liêu thực tế, Ԑij được giả định tuân theo luật phân phối chuẩnij được giả định tuân theo luật phân phối chuẩnvới trung bình 0 và phương sai σ²
11.4.1 Phân tích phương sai hai chiều với R
(a) Bước đầu tiên là nhập số liêu từ bảng trên vào R Chúng ta cần phải tổ chức dữ liệu sao
cho có 4 biến như sau:
máy
công
nhân
Đối tượng
công suất
Trang 13Chúng ta có thể nhập trực tiếp các số liêu trên, nhưng tôi sử dụng file vd158.csv có sẵn Trước tiên phải nhập file vd158.csv thành file vd mà R đọc được Và chúng ta sử dụng các nhãn: may( cột 1 của file vd), congnhan( cột 2), id( cột 3), congsuat(cột 4) Sau đó tất cả cho vào một dataframe tên là data:
(b) Phân tích và kết quả khái quát Bây giờ số liệu đã sẵn sàng cho phân tích Để phân tích
phương sai hai chiều, chúng ta vẫn sử dụng lệnh lm với các thông số như sau:
Ba nguồn dao động( variation) của congsuat được phân tích trong bảng trên Qua trung bình bình phương (mean square), chúng ta thấy ảnh hưởng của người công nhân có vẻ quan trọng hơn là ảnh hưởng của loại máy Tuy nhiên cả 2 ảnh hưởng đều không có ý nghĩa thống kê( do p lớn)
(c) Ước số Yêu cầu R tóm lược các ước số phân tích bằng lệnh summary
Trang 14Kết quả cho thấy so với máy 1, máy khác có công suất cao hơn khoảng 0.036 vầ sai số chuẩn là 0.079 với trị số p=0.654, tức là không có ý nghĩa thống kê, và xem xét ở tiêu chỉ công nhân thì cũng không có ý nghĩa thống kê( p=0.26) Vì vậy đẫn đến tình trạng hệ số xác định bội (R²) cho biết 2 yếu tố máy và công nhân giải thích chỉ có 1.68% độ dao động của toàn bộ mẫu, và hệ số R² hiệu chỉnh còn bị âm(=-0.0058).
Tức là giả thiết về sự thuần nhất của trung bình theo dòng, cột hây theo ô đều không bị bác bỏ.
(d) Hiệu ứng tương tác( interaction effects)
Để cho phân tích được hoàn tất, cần phải xem xét đến khả năng ảnh hưởng của 2 yếu tố này có thể tương tác nhau Tức mồ hình ban đầu trở thành
Trang 15Kết quả phân tích trên (p=0.7184) cho ảnh hưởng tương tác giứa loại máy và công nhân Chúng
ta có bằng chứng để kết luận rằng ảnh hưởng tương tác giữa loại máy và công nhân không có ý nghĩa thống kê Vậy chấp nhận mô hính ban đầu, tức không có tương tác
(e) So sánh giữa các nhóm Chúng ta sẽ ước tính độ khác biệt giữa 10 loại máy và 3 công nhân
bằng hàm TukeyHSD với aov:
Trang 16Biểu đồ sau đay sẽ minh hoạ cho các kết quả trên
Trang 17Biểu đồ 11.2
(f) Biểu đồ Để xem qua độ ảnh hưởng của hai yêu tố máy và công nhân, chúng ta càn phải có
một đò thị, mà trong phân tích phương sai gọi là đồ thị tương tác Hàm interaction.plot cung cấp phương tiện để vẽ biểu đồ này:
Trang 18Biểu đồ 11.3 Công suất trung bình cho từng loại máy cho 3 công nhân.
12 Phân tích hồi qui logistic
Trong các chương trước về phân tích hồi qui tuyến tính và phân tích phương sai,chúng ta tìm mô hình và mối liên hệ giữa một biến phụ thuộc liên tục (continuousdependent variable) và một hay nhiều biến độc lập (independent variable) hoặc là liên tụchoặc là không liên tục Nhưng trong nhiều trường hợp, biến phụ thuộc không phải là biếnliên tục mà là biến mang tính đo lường nhị phân: có/không, mắc bệnh/không mắc bệnh,chết/sống, xảy ra/không xảy ra, v.v…, còn các biến độc lập có thể là liên tục hay khôngliên tục Chúng ta cũng muốn tìm hiểu mối liên hệ giữa các biến độc lập và biến phụthuộc
Ví dụ1 Để đưa ra quyết định cho một khách hàng được vay hay không và mức lãi suất là bao
nhiêu, các tổ chức tín dụng cần phải phân loại, xếp hạng tín nhiệm khách hàng Mức tín nhiệm
Trang 19phụ thuộc vào xác suất mà khách hàng không trả được nợ đúng hạn, xác suất này gọi là xác suất
vỡ nợ Không trả đúng hạn ở đây sẽ được tính là không trả được lãi đúng hạn Tính toán được xác suất vỡ nợ là công việc đầu tiên của việc đánh giá tín nhiệm và xác định chính sách lãi suất Đối với khác hàng cá nhân, xác suất vỡ nợ chịu tác động nhiều nhân tố: thu nhập, chi tiêu, kinh nghiệm công tác, vị trí công tác, tuổi tác…Sử dụng tệp số liệu leha.csv, có số liệu về 4066 khách hàng của một tổ chức tín dụng, với các biến số sau:
stt biến số nội dung
1 default.int không trả được lãi đúng hạn(=1, 0 nếu ngược lại)
2 income thu nhập của khách hàng
4
newcustome
r khách hàng mới(=1 nếu là khách hàng mới, =0 nếu ngược lại
5 notran trong 3 tháng không có giao dịch(=1, ngược lại=0)
6 notran3 hơn 3 tháng không có giao dịch(=1, ngược lại =0)
7 wpcompany làm việc cho các công ty nước ngoài, công ty liên doanh(=1, khác=0)
8 wpmanager nhà quản lý(=1, khác=0)
9 spending chi tiêu/tháng(triệu đồng)
10 experience kinh nghiệm công tác( năm)
Câu hỏi đặt ra ban đầu là có mối liên hệ giữa income và default.int hay không ( số liêu được trình bày trong file kèm theo leha.csv)
12.1 Mô hình hồi quy Logistic
Cho một tần số biến cố x ghi nhận từ n đối tượng, chúng ta có thể tính xác suất của biến cố đó là:
p có thể xem là một chỉ số đo lường nguy cơ của một biến cố Một cách thể hiện nguy cơ khác là
odds (cũng có thể gọi là tỷ số OR – cho biết khả năng của một biến cố xảy ra bằng bao nhiêu lần
sô với khả năng biến cố không xảy ra
Hàm logit của odds được định nghĩa như sau:
Mối liên hệ giữa p và logit(p) là một mối liên hệ liên tục và theo dạng như sau:
Trang 20Biểu đồ 12.1
Biểu đồ trên được vẽ bằng các lệnh:
Cho một biêns độc lập x( x có thể là biến liên tục hay không liên tục), mô hình hồi qui logistic phát biểu rằng:
Tương tự như mô hình hôi qui tuyến tính, α và βj ( ảnh hưởng của là hai thông số tuyến tính cần phải ước tính từ
dữ liệu nghiên cứu Nhưng ý nghĩa của thông số này, đặc biệt là thông số βj ( ảnh hưởng của, rất khác với ý nghĩa
mà ta đã quen với mô hình hồi qui tuyến tính Để hiểu ý nghĩa của hai thông số này, quay lại ví
dụ 1 ta có
Để tiện cho việc minh hoạ gọi incom là x, vấn đề cần giải quyết được viết lại theo ngôn ngữ mô
hình như sau:
Trang 21Nói cách khác
Mô hình hồi qui logistic vừa trình bày ở trên phát biểu rằng mối quan hệ giữa xác suất vỡ nợ (p)
và thu nhập income là một mối liên hệ theo hình chữ S mô hình trên còn cho thấy xác suất vỡ nợ
tuỳ thuộc vào giá trị của x Từ đó ta có thể viết lại thành:
Khi x = xₒ, khả năng vỡ nợ của khách hàng là:
Khi x = xₒ +1, khả năng vỡ nợ là :
Và tỉ số của 2 xác suất vỡ nợ trên là:
Để ước tính thông số trong mô hình [3] thì chúng ta có thể sử dụng phương pháp hợp lí cực đại( maximum likelihood)
12.2 Phân tích hồi quy logistic bằng R
Ví dụ 1( tiếp) Trước hết chúng ta phải nhập tệp leha.csv vào Rvà chuyển đổi nó thành một Data
frame với cái tên vd Các lệnh cần thiết để nhập số liệu:
Trang 22Hai biến mà chúng ta quan tâm trong ví dụ này là: default.int(không trả được lãi đúng hạn) và income( thu nhập) R có thể kiểm tra xem có bao nhiêu khách hàng không trả được lãi đúng hạn:
Kế đến, xem thu nhập trong nhóm không trả được lãi đúng hạn và trả được lãi đúng hạn ra sao:
Trang 23Kết quả trên cho thấy thu nhập của nhóm khách hàng không trả được lãi đúng hạn thấp hơn so với nhóm khách hàng trả được lãi đúng hạn ( 6.07 và 6.51) Và kiểm định t sau đây cho thấy mức
độ khác biệt này không có ý nghĩa thống kê (p=0.055> 0.05)
Trang 24Để ước tính thông số trong mô hình [4], hàm số glm (viết tắt của từ generalized linear model)
trong R có thể áp dụng, với các lệnh sau:
Giải thích các kết quả trên:
a) Trong lệnh
Chúng ta yêu cầu R phân tích theo mô hình default.int là một hàm số với income như mô hình [4] Trong glm có hiều luật phân phối, mà trong đó phân phối nhị phân(binomial) là một luật phân phối chuẩn cho hồi qui logistic Do đó, sử dụng lệnh family=”binomial”b) Deviance: phần thứ nhất về kết quả cho biết qua về deviance:
Deviance : phản ánh độ khác biệt giữa mô hình và dữ liệu cũng tương tự như mean square residual trong phân tích hồi quy tuyên tính) Đối với một mô hình đơn lẻ như ví dụtrên thì giá trị này không có ý nghĩa gì nhiều
c) Phần kế cung cấp các ước số của ^α (mà R đặt tên là intercept) và ^β (income) và sai số
chuẩn (standard error)