Stats นอก geoms

การสร้างภาพข้อมูลระดับกลางด้วย ggplot2

Rick Scavetta

Founder, Scavetta Academy

กราฟพื้นฐาน

ggplot(iris, aes(x = Species, 
                 y = Sepal.Length)) +
  geom_jitter(width = 0.2)

การสร้างภาพข้อมูลระดับกลางด้วย ggplot2

การคำนวณสถิติ

set.seed(123)
xx <- rnorm(100)
mean(xx)
[1] 0.09040591
mean(xx) + (sd(xx) * c(-1, 1))
[1] -0.822410  1.003222
การสร้างภาพข้อมูลระดับกลางด้วย ggplot2

การคำนวณสถิติ

set.seed(123)
xx <- rnorm(100)

# Hmisc
library(Hmisc)
smean.sdl(xx, mult = 1)
       Mean       Lower       Upper 
 0.09040591 -0.82240997  1.00322179
# ggplot2
mean_sdl(xx, mult = 1)
           y     ymin     ymax
1 0.09040591 -0.82241 1.003222
การสร้างภาพข้อมูลระดับกลางด้วย ggplot2

stat_summary()

ggplot(iris, aes(x = Species, 
                 y = Sepal.Length)) +
 stat_summary(fun.data = mean_sdl, 
                fun.args = list(mult = 1))
  • ใช้ geom_pointrange() เป็นค่าเริ่มต้น

การสร้างภาพข้อมูลระดับกลางด้วย ggplot2

stat_summary()

ggplot(iris, aes(x = Species, 
                 y = Sepal.Length)) +
  stat_summary(fun = mean,
               geom = "point") +
  stat_summary(fun.data = mean_sdl,
               fun.args = list(mult = 1),
               geom = "errorbar",
               width = 0.1)

การสร้างภาพข้อมูลระดับกลางด้วย ggplot2

ไม่แนะนำ!

การสร้างภาพข้อมูลระดับกลางด้วย ggplot2

ช่วงความเชื่อมั่น 95%

ERR <- qt(0.975, length(xx) - 1) * (sd(xx) / sqrt(length(xx)))
mean(xx)
0.09040591
mean(xx) + (ERR * c(-1, 1)) # 95% CI
-0.09071657  0.27152838
mean_cl_normal(xx)
           y        ymin      ymax
0.09040591 -0.09071657 0.2715284
การสร้างภาพข้อมูลระดับกลางด้วย ggplot2

ฟังก์ชัน stat_ อื่นๆ

stat_ คำอธิบาย
stat_summary() สรุปค่า y ที่ค่า x แต่ละค่า
stat_function() คำนวณค่า y จากฟังก์ชันของค่า x
stat_qq() คำนวณสำหรับกราฟ quantile-quantile
การสร้างภาพข้อมูลระดับกลางด้วย ggplot2

MASS::mammals

การสร้างภาพข้อมูลระดับกลางด้วย ggplot2

การแจกแจงปกติ

mam.new <- data.frame(body = log10(mammals$body))

ggplot(mam.new, aes(x = body)) + 
  geom_histogram(aes( y = ..density..)) +
  geom_rug() +
  stat_function(fun = dnorm, color = "red", 
                args = list(mean = mean(mam.new$body),
                            sd = sd(mam.new$body)))

การสร้างภาพข้อมูลระดับกลางด้วย ggplot2

กราฟ QQ

ggplot(mam.new, aes(sample = body)) + 
  stat_qq() +
  geom_qq_line(col = "red")

การสร้างภาพข้อมูลระดับกลางด้วย ggplot2

มาฝึกกันเถอะ!

การสร้างภาพข้อมูลระดับกลางด้วย ggplot2

Preparing Video For Download...