Tuesday, September 23, 2014

Các hàm R phổ biến 2: Các hàm R dùng cho phân tích mô tả


Dưới đây là một số hàm chính dùng cho phân tích mô tả trong R. Phần lớn những hàm này là những hàm đã có sẵn trong R, nhưng một số nằm trong các package chuyên dụng như psych và tables.  





Package tables có cú pháp giống giống như PROC TABULATE của SAS: 

tabular(group1 ~ group2*(n=1 + Percent("row"))

tabular(age+weight+height+bmi ~ group*(n=1+mean+sd))


Phân tích  
Hàm R
Trung bình; phương sai; độ lệch chuẩn; trung vị; giá trị thấp nhất; giá trị cao nhất; range; số đối tượng

mean(x); var(x); sd(x); median(x); min(x); max(x); range(x); length(x)
Tính bách phân vị 2.5, 50, 97.5%

quantile(median, probs=c(0.025, 0.975))

Tóm tắt dữ liệu 
summary(dataset)

Tóm tắt dữ liệu cho nhiều biến hay dataset dùng describe (trong psych)

library(psych);
summary(dataset, skew=F, range=F)

Tóm tắt dữ liệu cho nhiều biến hay dataset; theo nhóm

library(psych);
describeBy(dataset, skew=F, range=F)

Tóm tắt bằng hàm tabular (trong tables); biến phân nhóm
tabular(REGION ~ 1);
tabular(REGION~1*(n=1 + Percent("col")));
tabular(REGION ~ AREA*(n=1 + Percent("row")));
tabular(REGION ~ AREA*(n=1 + Percent("col")));
tabular(REGION*AREA ~ TYPE)

Tóm tắt bằng hàm CrossTable (trong gmodels); biến phân nhóm

CrossTable(REGION, TYPE, prop.c=T, prop.r=T, prop.t=F, prop.chisq=F, chisq=T)
Tóm tắt bằng hàm tabular (trong tables); biến phân nhóm
tabular(REGION ~ MATH*(n=1+mean+sd));
tabular(REGION*TYPE ~ MATH*(n=1+mean+sd));
tabular(REGION*TYPE ~ (MATH + READING)*(n=1+mean+sd))

Kiểm định xem biến x có tuân theo luật phân bố chuẩn

shapiro.test(x)
Kiểm định t xem trung bình mẫu bằng trung bình quần thể (mu)

t.test(x, mu=30)
Kiểm định t hai nhóm độc lập (unpaired t-test)

t.test(x ~ group);
hoặc t.test (group1, group2)
Kiểm định t hai nhóm không độc lập (paired t-test)

t.test(x ~ group, paired=T);
hoặc t.test (group1, group2, paired=T)
Kiểm định phương sai hai nhóm

var.test(x ~ group)
Kiểm định Wilcoxon cho 2 nhóm độc lập

wilcox.test(x ~ group)
Kiểm định Wilcoxon cho 2 nhóm không độc lập

wilcox.test(group1, group2, paired=TRUE)
Kiểm định nhị phân cho một tỉ lệ (binomial test)
# kiểm định xem tần số x xày ra trong số n có bằng 50%
prop.test(x, n, 0.50)


So sánh 2 tỉ lệ; kiểm định nhị phân

fracture = c(7, 20)
total = c(100, 110
prop.test(fracture, total)
Kiểm định Ki bình phương (χ2 test) 2 nhóm

freq = table(sex, ethnicity);
prop.test(freq)

Kiểm định Ki bình phương (χ2 test) nhiều nhóm

chisq.test(sex, ethnicity)
Kiểm định chính xác Fisher (Fisher’s exact test)

fisher.test(sex, ethnicity)
Khoảng tin cậy 95% cho một tỉ lệ
library(binom);   
x = c(3, 5, 7);
n = rep(10, length(x));
binom.confint(x, n, conf.level=0.95, methods="all")

Khoảng tin cậy 95% cho một tỉ lệ gần 100% hay gần 0 (Phương pháp Cai & DasGupta 2002)
n=40; x=39; alpha=0.05;
qbeta(c(alpha/2,1-alpha/2),x+0.5,n-x+0.5)

Khoảng tin cậy 95% chính xác cho 2 tỉ lệ
require("ExactCIdiff");
# binormCI(n1,n2,x1,x2,conf.level,CItype)
binormCI(10,15,2,4, conf.level=0.95,CItype="Two.sided")




No comments:

Post a Comment