reli
TRUONG DAI HOC BACH KHOA 0Oo
Đề tài 3
1 Nguyễn Ngoc Vinh Hién (NT) 2013185 Co khi L14
2 Ngo Hoang Son 2010584 Xây dựng L14
Trang 22 Làm sạch dir ligu (Data cleaning): 3 Làm rõ dữ liệu (Data visualization):
4 test: Dùng một kiêm định phù hợp cho hai biến pre.weight và weight6weeks 5 ANOVA một nhân tô: Chế độ ăn kiêng Diet nào hiệu quả nhất trong việc giảm cân
6 ANOVA hai nhân tố: Chế độ ăn kiêng ( Diet ) và giới tính ( gender ) có ảnh hưởng thế nào đến việc giảm cân weight.loss IL Phan riêng:
1 Đọc dữ liệu (Import data): 2 Làm sạch dữ liệu (Data cleaning) 3 Làm rõ dữ liệu (Data visualization):
4 Xây dựng mô hình hồi quy tuyến tính (Fitting linear regression models): 3 Nhận xét
II Tai liệu tham khảo
IV Nguồn dữ liệu
I Phan chung:
14 19 20 20 21 25
34
34
Tập tin Diet.esv (cung cấp bởi Đại học Sheffield, Anh) chứa thông tin về một thử nghiệm về hiệu quá của các chế độ ăn kiêng trong việc giảm cân nặng đối với những người trưởng thành Một người tham gia sẽ được áp đụng một trong ba chế độ ăn kiêng khác nhau trong vòng 6 tuân lễ Cân nặng của người tham gia sẽ được ghi nhận trước và sau khi kết thúc thử nghiệm đề đánh giá hiệu quá của từng chế độ ăn kiêng
Các biến chính trong bộ dữ liệu:
Person = số thứ tự của người tham gia thử nghiệm gender = gidi tinh cua người tham g1a (1 = nam, 0 = nữ) Age = tuổi (năm)
Height = chiều cao (em)
pre weight = cân nặng trước khi áp đụng chế độ ăn kiêng (kg)
Trang 3Diet = chế độ ăn kiêng (3 chế độ khác nhau) weight6weeks = cân nặng sau 6 tuần ăn kiêng
Các bước thực hiện:
1 Đọc đữ liệu (Import data): house_prIce.csv 2 Làm sạch đữ liệu (Data cleaning): NA (dit ligu khuyét)
3 Làm rõ đữ liệu: (Data visualization)
(a) Chuyên đổi biến (nếu cân thiết)
(b) Thống kê mô tá: đùng thống kê mẫu và dùng đồ thị
4 ttest: Dùng một kiêm định phù hợp cho hai biến pre.weipht và weipht6weekks 5 ANOVA một nhân tổ: Chế độ ăn kiêng Diet nào hiệu quá nhất trong việc giảm cân
6 ANOVA hai nhân tố: Chế dộ ăn kiêng Diet và giới tính gender anh huéng thé nao dén việc giảm cân weightLOST?
1 Đọc dữ liệu Data (Import data) Để đọc đữ liệu vào R, ta dùng lệnh sau:
Diet<- read.csv(”Dpiet.csv”, header=TRUE)
Để xem dữ liệu vừa nhập ta dùng lệnh diet, R sé xuất ra bảng như sau:
Data @ Diet
int int int
int
int num
41 32 22 46 55 33 50 50 37 28 171 174 159 192 170 171 170 201 174 1 60 103 58 60 64 64 65 66 67 69
2 211111111
60 103 54.2 54 63.3 61.: L 62.2 64 § Diet :int 221
1111111
65 6
Trang 42 Làm sạch dit liéu (Data cleaning):
Kiểm tra các dữ liệu bị khuyết trong tập tin (Các câu lệnh tham khảo: is.na(), whichQ, applyQ) Nếu có dữ liệu bị khuyết, hãy để xuất phương pháp thay thế cho những dữ liệu bị khuyết này
Kiểm tra dữ liệu khuyết: Input:
6 #CAU2
7 colsums(is.na(Diet))
9 apply(Diet, 2, function(x)sum(is.na(x))/ ‘Tength(x X)) 10 Diet_new<- na.omit(Diet) #xda cac du lieu khuyet
Output:
Trang 5$Age integer (0)
$Height integer (0) $pre weight
integer (0)
$Diet integer (0) Sweight6weeks integer (0)
> apply(Diet, 2, function(x)sum(is.na(x))/length(x))
Person gender Age Height pre.weight Diet weight6weeks
0 00000000 0.02564103 0 00000000 0 00000000 0 00000000 0 00000000 0 00000000 > Diet_new<- na.omit(Diet) #xóa các du lieu khuyet
Dòng lệnh >colSums(is.na(Diet)) để kiểm tra có bao nhiêu đữ liệu khuyết Dòng lệnh >apply(is.na(Diet),2,which) dé kiếm tra vị trí các đữ liệu khuyết
Dòng lệnh >apply(Diet, 2, function(x)sum(is.na(x))/length(x)) dé kiém tra tỉ lệ đữ liệu khuyết so với số liệu đề bài, nếu bé qua thì có thể bỏ qua Dòng lệnh >Diet_new<- na.omit(Diet) đề loại bỏ các đữ liệu khuyết
Đề xuất phương án xóa đữ liệu khuyết vì nó chiếm quá nhỏ trên dữ liệu đề bài nên bỏ sẽ không ánh hưởng
Dữ liệu Diet sau khi loại bỏ các dữ liệu khuyết ta được Diet_new:
Trang 6Person gender Age Height pre.weight Diet weight6weeks
Chuyền đối dữ liệu: (không cần thiết)
v Thong kê mô tả: dùng thống kê mẫu và dùng đồ thị
Tao bién weight loss = pre.weight - weight6weeks la cân nặng giảm được sau 6 tuần thực hiện chế độ ăn kiêng
diet.new$weight loss<- diet.new$pre.weight - diet.new$weight6weeks
Nhìn vào bảng số liệu ta thấy có 2 biến cần được phân tích gồm: biến rời rạc và biến liên tục:
+Biến rời rạc gồm: gender, Diet
+Bién liên tục gồm: Age, Height, pre.weight, weight6weeks
a.Thống kê mẫu:
Đối với các biến phân loại ( rời rạc), hãy lập một báng thống kê số lượng cho từng chủng loại (Hàm gợi ý: table())
Input:
Fbien roi rac
| table(Diet_new$gender ) i table(Diet_new$Diet)
Output:
Trang 7> #CAU3
> #bien roi rac
> table(Diet_new$gender ) 0 1
43 33
> table(Diet_new$Diet)
1 2 3 24 25 27
Đối với các biến liên tục, hãy tính các giá trị thống kê mô tả gồm: trung bình, trung vị, độ lệch chuẩn, giá trị lớn nhất và giá trị nhỏ nhất Xuất kết quả
với đưới dạng bảng (Hàm gợi ý: mean(Q, median(Q), sdQ, minQ), max(), apply(), as.data.frame(), rownames())
29 #tao cac phan tich du lieu
30 stat_table<- applyCdiet.new[,cC"Age", "Height", "pre.weight","“weight6weeks")], 2, functinn€x){ c(mean€x), medlan€x), sdéx), mìn€Cx), max€x))})
32 rownames(stat_table)<- cC"mean", "max" ) #0???1 t”n 33 stat_table
Ta str dung lénh apply() với tham số đầu là các biến liên tuc: Age, Height,pre.weight,weight6weeks Voi muc dich dé tinh cac giá trị thống kê cụ thể theo ham function()
Sau đó dùng lénh rewnames() dé dat tên cho các giá trị thông kê vừa tính dé tao ra bang stat_table bên dưới
> stat_table Age
mean 39 223684 median 39 000000
sd 9.908379
min 1§.000000
max 60 000000
Khái quát hon, dé biết được các giá trị thống kê của biến weight.loss theo từng chế độ ăn kiêng, ta dùng lệnh sau:
346 #tong hop 3 muc
37 byCdiet.newl, cC"Age", “Height”, “pre.weight", “weight6weeks", “weight loss") ]
Height pre
170 77632 169 00000 11.41998 141 00000 201 00000
diet
#2 ra ? 58 88
median", "sd", "mì n" ;
-weight weight6weeks
89474 00000 874655 00000 000000
38 , diet.new[,"Diet"], summary)
68 68 8 53 84
343421 850000 058938 000000 300000
Trang 8diet.new[, "“Diet"]: 1
Age Height pre weight wei ght 6weeks weight loss Min 222.00 Min :156.0 Min 758.00 Min :54 00 Min :-0 600
1st ou :36.00 dst Ou :164.5 dst ou :66.75 ist Ou :63.83 1st QU.: 1.975
Median :40.50 Median :167.5 Median :72.00 Median :69.25 Median : 3.050
Mean 740.88 Mean :170.3 Mean 272.88 Mean 7:69.58 Mean : 3.300
3rd Qu :48.50 3rd Qu :173.2 3rd Qu :80.00 3rd Qu :74.83 3rd Qu.: 3.950
Max : 60, Q0 Max 7201.0 Max 788.00 Max 784.50 Max 9,000
diet.new[, "“Diet"]: 2
Age Height pre weight wei ght 6weeks weight loss Min 716.0 Min :160 Min 58.00 Min 255.00 Min :-2.100
ist Qu.:33.0 dst ou :165 1st Qu :63.00 1st ou :60.30 1st Qu.: 2.000
Median :39.0 Mean 239.2 Median :171 Mean 2175 Median :71.00 Mean 270.28 Median :66.80 Mean 267.01 Median Mean : 3.268 3.500
3rd au :45.0 3rd Qu :182 3rd Qu :78.00 3rd Qu.:72.70 3rd qu.: 4.700
Max :54.,0 Max :199 Max 7:80.00 Max :81.40 Max : 7.900
diat.new[, "“Diet"]: 3
Age Height pre weight wei ght 6weeks weight loss
Min :20 00 Min 7141.0 Min 760.00 Min 253.00 Min 0 500 1st Qu :31.0Q0 1st QU :161 5 1st Qu :68.0Q0 1st Qu :61 70 1st Ou :3.450 Median :36.00 Median :169.0 Median :73.00 Median :68.90 Median :5.400 Mean 137.78 Mean :167.3 Mean 173.63 Mean 768.48 Mean 75.148
3rd au :46.00 3rd Qu :174.0 3rd Qu :78.00 3rd Qu :74.85 3rd Qu :7.000
Max 758.00 Max 7183.0 Max 788.00 Max 781.90 Max 79.200
>
b.Dùng đồ thị:
Dùng lệnh #/) đề cho ra kết quá tông quan sau quá trình ăn kiêng:
4? hist(Cdiet.newiweight l0ss, main = "Đả thị phân phổi bién weigh loss"
48 ; Cũ] = “navyblue"
Hàn hữn(Q) nhận vào niột Xu)Ô cai pigucciga Hal BSF, day can xem “weightloss” nên tham số vào đầu là “weight.loss” và các tham số tùy chọn
50 » ¥ylab = số người
bao nh main đề đặt tến cho biêu đô, col để chỉnh màu cho biêu đô , xlab đê đặt tên cho trục hoành và ylab đề đặt tên cho trục tung
Đỏ thị phân phối biến weigh.loss
Dùng lệnh boxplot để có âm đồ thị mô tả weight.loss theo từng _
41 boxplot¢diet.newl, “weight loss") ~ diet.new[,"Diet"],
Ham boxplot() c6 ci phap trong tu ham hist() Sau khi
Cân nặng giảm dựa vào mức Diet
Trang 9Giá thuyết HI: Cân nặng trung bình sau ăn kiêng thấp hơn trước ăn kiêng Dùng hàm #fes£ kiêm định một phía đối với hai bién pre weight va weight6weeks:
t.test(diet.new$pre.weight, diet.newSweight6Oweeks, paired=T, alternative = ”greater”)
3.946053
Dựa vào kết qua tir R, ta biết được độ tin cậy là 95% (mức ý nghĩa « = 0.05) va p-value < 2.2 10: 6 Vi p-value rat bé so với mức ý nghĩa ơ nên ta bác bỏ giá thuyết H0,chấp nhận giá thuyết H1 Vậy cân nặng trung bình sau ăn kiêng giám so với cân nặng trung bình trước ăn kiêng
5 ANOVA một nhân tố: Chế độ ăn kiêng Diet nào hiệu quả nhất trong việc giảm cân
5,1 Trình bày Phân tích phương sai một nhân tố, phát biểu các giả thuyết và đối thuyết Nêu các giả định của mô hình cần kiểm tra - Phân tích phương sai ANOVA: so sánh 1 biến liên tục giữa các nhóm (nhiều hơn 2 nhóm)
- Gia thuyết vô hiệu: H0: không có sự khác biệt nào giữa các quân thế - Gia thuyết đáo: HI: có tối thiêu một sự khác biệt trong quân thé
5.2 Thực hiện kiểm tra gia định của mô hình:
Một số giả định khi phan tich ANOVA:
— Các nhóm so sánh phải độc lập và được chọn một cách ngẫu nhiên
— Các nhóm so sánh phải có phân phối chuẩn hoặc cỡ mẫu phải đủ lớn để được xem như tiệm cận phân phối chuẩn — Phương sai của các nhóm so sánh phải đồng nhất
5.2.1 Kiểm tra giả định các nhóm so sánh phải độc lập và được chọn một cách ngdu nhién
Các nhóm so sánh phải độc lập và được chọn ngau nhiên: thỏa mãn, vì 3 nhóm khảo sát trên những người khác nhau
5.2.2 Kiểm tra giá định các nhóm phải có phân phối chuẩn hoặc cỡ mẫu đủ lớn đề được xem như tiệm cận phân phối chuẩn: Ở đây các nhóm có cỡ tương đối nhỏ nên phái xem các nhóm có là phân phối chuẩn hay không với 2 bước sau:
(1) Vẽ biếu đồ xác suất chuẩn (normal Q-Q plot) Phân phối chuẩn khi biểu đỗ xác suất này có quan hệ tuyến tính (đường thăng) (2) Đề chính xác hơn ta thực hiện thém Shapiro - Wilk test
a) Nhóm thực hiện chế độ ăn kiêng 1 (dietl)
Vẽ biểu đỗ xác suất chuẩn (normal Q-Q plot) Input:
Trang 10dietl <- subset(diet.new, Diet =="1" ) qqnorm(dietl$weight.loss, col="red") qqline(dietl$weight loss)
Output:
Normal Q-Q Plot
le) o
œ —
® = ao
S @ wr a
w = 0.92553, p-value = 0.07749
Nhận xét: giá trị p > 0.05 nên các nhóm mà ta khảo sát tuân theo luật phân phối chuẩn
b) Nhóm thực hiện chế độ ăn kiêng 2 (diet2)
Vẽ biểu đỗ xác suất chuẩn (normal Q-Q plot) Input:
diet2 <- subset(diet.new, Diet =="2" )
qqnorm(diet2$weight loss, col="red") qqline(diet2$weight loss)
Output:
Trang 11Thực hiện Sharpio - Wilk test Input:
31 shapiro test (diet2$weight loss)
Output:
> shapiro test (diet2$weight loss) Shapiro-wilk normality test data: diet2$weight loss
w = 0.97936, p-value = 0.8722
Nhận xét: giá trị p > 0.05 nên các nhóm mà ta khảo sát tuân theo luật phân phối chuẩn
c) Nhóm thực hiện chế độ ăn kiêng 3 (diet3)
Vẽ biểu đỗ xác suất chuẩn (normal Q-Q plot) Input:
diet3 <- subset(diet.new, Diet =="3" )
qqnorm(diet3$weight.loss, col="red") qqline(diet3$weight loss)
Output:
Trang 12Nhận xét: gần như là phân phối chuẩn, dù có vài giá trị hơi lệch so với giá trị kì vọng
Thực hiện Sharpio - Wilk test Input:
35 shapiro test (diet3$weight loss)
Nhận xét: giá trị p > 0.05 nên các nhóm mà ta khảo sát tuân theo luật phân phối chuẩn
5.2.2 Kiểm tra giả định về tỉnh đồng nhất của các phương sai: Bartlet test
Lý thuyết: giả thuyết vô hiệu là tắt cả các phương sai của quần thê đều bằng nhau; giả thuyết thay thế là ít nhất hai trong số chúng khác nhau
Giả thuyết:
HO : tat cả các nhóm có phương sai tương đương nhau
HI : Có ít nhất 1 cặp trong số các nhóm có phương sai không tương đương nhau
Câu lệnh:
bar†]ett, test(diet newitteight., loss~diet newSDiet ) Kết quả:
Trang 13> bartlett.test(diet.new$weight loss~diet.new$Diet)
Bartlett test of homogeneity of variances data: diet.new$weight loss by diet.new$Diet
Bartlett's K-squared = 0.21811, df = 2, p-value = 0.8967
Nhận xét: giá trị p >0.05 nên chấp nhận H0, tức không có bằng chứng nào cho thấy phương sai của 3 chế độ ăn kiêng có sự khác biệt rõ rệt, tức 3 chế độ ăn kiêng có phương sai tương đương nhau
5.3 Thực hành phân tích phương sai một nhân tố Cho kết luận về hiệu quả của các phương pháp ăn kiêng đối với việc giảm cân Câu hỏi đặt ra: mức độ giảm cân của 3 chế độ ăn kiêng có khác nhau hay không?
Gọi số cân giảm trung bình của 3 nhóm là u1, u2, 13;
H0: 1= n2=u3;
HI: có một sự khác biệt giữa 3 Hị (=1, 2, 3);
Đâu tiên, nhập dữ liệu:
DF Sum Sq Mean Sq F value Pr(>F)
Dựaxàđ hêtqnả đày¡ chúng éa€ó9iet) 2 60.53 30.2635 5.3831 0.006596 **
Residuals 73 410.40 5.6219
Trung bình bình phuong gitta cac nhóm (MSB) = 30.2635 Tổng bình phương trong mỗi nhóm (SSW) = 410.40 Trung bình bình phương trong mễi nhóm (MSW) = 5.6219 Nhu vay, F = MSB/MSW = 30.2635/ 5.6219 = 5.3831
Trị số p = 0.006596 < 0.05 nên bác bỏ H0 có nghĩa là tín hiệu cho thấy có sự khác biệt về độ giám cân giữa ba ché độ ăn kiêng
Để biết thêm kết quả phân tích, chúng ta dùng lệnh summary như sau:
Input
35 summary(av)
Trang 14Output:
coefficients:
Estimate Std Error t value Pr(>|t!) (Intercept) 3 3000 0.4840 6.818 2.26e-09 *** as.factor(diet.new$Diet)2 -0.0320 0.6776 -0.047 0.96246 as factor (diet new$Diet)3 1.8481 0.6652 2.778 0.00694 **
Signif codes: O0 “***" 0.001 “**' 0.01 “*° 0.05 “.'° 0.1 “ ” 1 Residual standard error: 2.371 on 73 degrees of freedom
Multiple R-squared: 0.1285, Adjusted R-squared: 0.1047
F-statistic: 5.383 on 2 and 73 DF, p-value: 0.006596
Nhận xét: So với chế độ ăn kiêng 1 và chế độ 2 thì chế độ 3 đều có độ giảm cân và lớn hơn chế độ 1, nhưng độ giảm cân của chế độ 2 lại không có ý
nehĩa thống kê, còn chế độ 3 thì có ý nghĩa thống kê Thực hiện so sánh bội (Multiple Comparisons):
Input
36 MC=TukeyHSD(aov(diet.newSweight loss ~ as factor (diet.new$Diet) ,data=diet new) )
37 MC Output:
Tukey multiple comparisons of means 95% family-wise confidence level
Fit: aov(formula = diet.new$weight loss ~ as.factor(diet.new$Diet), data = diet.new)
$*as factor (diet new$Diet)~
diff lwr upr p adj
032000 -1.6530850 1.589085 0.9987711
2-1 -0
3-1 1.848148 0.2567422 3.439554 0.0188047 3-2 1.880148 0.3056826 3.454614 0.0152020
Trang 15Nhận xét: Kết quá cho thấy sự khác nhau về cân nặng giảm được giữa:
v v v
Phương pháp ăn kiêng 3 cao hơn phương pháp ăn kiêng 1| la 1.848148, khoang tin cay 95% la (0,2567422; 3.439554) -Phương pháp ăn kiêng 3 cao hơn phương pháp an kiéng 2 la 1.880148, khoang tin cdy 95% là (0,3056826; 3,454614) Ở phương pháp ăn kiêng 2 và phương pháp ăn kiêng 1 không thê so sánh được sự khác nhau vì p adj=0,9987711> 0,05
Như vậy sự so sánh có ý nghĩa thống kê ở cặp nhóm (3-1) và (3-2) nhưng không có ý nghĩa ở cặp (2-1) Phương pháp ăn kiêng hiệu quá nhất là phương pháp 3
1.Phân tích phương sai 2 nhân tổ và điều kiện để phân tích phương sai hai nhân tố
â Dinh nghia
Một phép thử cho phép so sánh giữa các trung bình của nhiều nhóm dữ liệu, trong đó hai biến độc lập được xem xét
ANOVA hai yếu tổ là một phần mở rộng của phân tích phương sai một yếu tố Với One Way, bạn có một biến độc lập ánh hưởng đến biến phụ thuộc
Còn với two-way ANOVA, sẽ có 2 biến độc lập
Vi du: Voi dt liệu đề cho, ta có thể thực hiện phân tích ANOVA hai nhân tế với hai biến độc lập là giới tính (gender) và chế độ ăn kiêng (Diet), biến
phụ thuộc là cân nặng giảm được sau 6 tuân (weight.]oss)
Điều kiện để phân tích ANOVA hai chiều:
Biến phụ thuộc phải là biến liên tục
Hai biến độc lập phải có nhiều mức phân loại (Ví đụ: giới tính có 2 phân loại là nam và nữ)
Các quan sát trong mỗi nhóm và giữa các nhóm phái độc lập với nhau (Ví dụ: cơ sở đữ liệu được cho về cân nặng của 78 cá nhân độc lập)
Không nên có diém di biệt
Dữ liệu của biến phụ thuộc phái là phân phối chuẩn hay xấp xỉ phân phối chuẩn (Đã chứng minh khi xét ANOVA một nhân tổ ở trên)
Đề thực hiện phân tích phương sai ANOVA hai chiều xem xét chế độ ăn và giới tính ánh hưởng thế nào đến việc giảm cân, ta lần lượt phân tích như
Xem tác tác động của lần lượt từng yếu tổ chế độ ăn kiêng, giới tính đến việc giảm cân Xem xét tác động tổng hợp của việc giảm cân
Vẽ đồ thị thế hiện tương quan giữa hai yêu tố chế độ giảm cân và giới tinh
a) Các câu lệnh và ý nghĩa: