Các lệnh thống kê mô tả

Câu 1

Ta có vector p, hãy kiểm tra đặc điểm phân bố chuẩn của dữ liệu.

Từ khóa: normality test

p <- c(5, 12, 33, 9, 11, 12, 12, 15, 16, 22, 20)
p
 [1]  5 12 33  9 11 12 12 15 16 22 20

Kiểm định phân bố chuẩn

shapiro.test(p)

    Shapiro-Wilk normality test

data:  p
W = 0.90048, p-value = 0.1873

Nếu p-value > 0.05 thì dữ liệu phân bố chuẩn.

Tính skewness (độ lệch) và kurtosis (độ nhọn) của phân bố

Cách 1: Giá trị quy về 0

  • Skewness
Skewness từ -1 đến 1: mức lý tưởng để kết luận có phân phối chuẩn

Skewness từ -2 đến 2: mức chấp nhận để kết luận có phân phối chuẩn

Skewness vượt quá -2 và 2: dữ liệu không có phân phối chuẩn
  • Kurtosis
Kurtosis gần bằng 0: mức lý tưởng để kết luận có phân phối chuẩn

Kurtosis từ -2 đến 2: mức chấp nhận để kết luận có phân phối chuẩn

Kurtosis vượt quá -2 và 2: dữ liệu không có phân phối chuẩn
library(psych)
psych:::skew(p)
[1] 0.9576881
psych:::kurtosi(p)
[1] 0.1692187

Cách 2: Giá trị quy về 3

library(moments)
moments:::skewness(p)
[1] 1.104875
moments:::kurtosis(p)
[1] 3.834755

Tham khảo

https://www.phamlocblog.com/2025/03/chi-so-skewness-kurtosis-phan-phoi-chuan-spss.html

Câu 2

Bạn có dữ liệu sau là kết quả đo khối lượng cây ở 3 nghiệm thức, hãy vẽ đồ thị QQ plot để kiểm tra đặc điểm phân bố chuẩn của dữ liệu.

PlantGrowth
   weight group
1    4.17  ctrl
2    5.58  ctrl
3    5.18  ctrl
4    6.11  ctrl
5    4.50  ctrl
6    4.61  ctrl
7    5.17  ctrl
8    4.53  ctrl
9    5.33  ctrl
10   5.14  ctrl
11   4.81  trt1
12   4.17  trt1
13   4.41  trt1
14   3.59  trt1
15   5.87  trt1
16   3.83  trt1
17   6.03  trt1
18   4.89  trt1
19   4.32  trt1
20   4.69  trt1
21   6.31  trt2
22   5.12  trt2
23   5.54  trt2
24   5.50  trt2
25   5.37  trt2
26   5.29  trt2
27   4.92  trt2
28   6.15  trt2
29   5.80  trt2
30   5.26  trt2

Kết quả cần đạt là hình này.

Cách 1

library(ggplot2)
library(qqplotr)
ggplot(data = PlantGrowth,
       mapping = aes(sample = weight, 
                     color = group, 
                     fill = group)) +
  
    stat_qq_band(alpha = 0.5) +
  
    stat_qq_line() +
  
    stat_qq_point() +
  
    facet_wrap(~ group,
               scale = "free",
               nrow = 1,
               ncol = 3) 

Cách 2

library(ggplot2)
library(ggpubr)

ggpubr:::ggqqplot(data = PlantGrowth, 
                  x = "weight", 
                  facet.by = "group")