电竞比分网-中国电竞赛事及体育赛事平台

分享

偏態(tài)數(shù)據(jù)的箱式圖,試試一個(gè)新的R包,識(shí)別異常值更精準(zhǔn)

 妙趣橫生統(tǒng)計(jì)學(xué) 2025-12-03 發(fā)布于江蘇

箱線圖是一種廣泛使用的統(tǒng)計(jì)工具,用于可視化變量的分布。它最初由 Spear 引入,后經(jīng) Tukey 推廣普及。

老鄭一直覺(jué)得目前數(shù)據(jù)分析的箱式圖對(duì)離群值不友好,而且容易誤導(dǎo),理論來(lái)說(shuō)離群值它也應(yīng)該體現(xiàn)在箱式圖。

在實(shí)際應(yīng)用中,這些圖形可以方便地通過(guò) R 的基礎(chǔ)繪圖功能(如 boxplot() )和 ggplot2 包(如 geom_boxplot() )生成,二者共同構(gòu)成了常規(guī)箱線圖可視化的主要工具。

傳統(tǒng)Tukey箱線圖局限
然而,傳統(tǒng)(亦稱(chēng)Tukey式)箱線圖的一個(gè)根本局限在于其依賴(lài)于對(duì)稱(chēng)性和輕尾性假設(shè)。通過(guò)觸須作為分界線,將異常值定義為低于下觸須底端和高于上觸須頂端的觀測(cè)值。
  • 上觸須頂端 = Q3 + 1.5 × IQR
  • 下觸須底端 = Q1 - 1.5 × IQR
(四分位數(shù)間距IQR,上四分位數(shù)Q3,下四分位數(shù)Q1
該規(guī)則在諸如正態(tài)分布這樣的對(duì)稱(chēng)、常峰態(tài)分布中表現(xiàn)良好,但當(dāng)數(shù)據(jù)呈偏態(tài)或厚尾分布時(shí),往往通過(guò)“淹沒(méi)”(將正常觀測(cè)誤標(biāo)為異常值)或“掩蔽”(未能檢測(cè)出真實(shí)異常值)導(dǎo)致異常值的誤判。
傳統(tǒng)Tukey箱線圖局限解決方案
因此,衍生出幾種專(zhuān)門(mén)為適應(yīng)分布不對(duì)稱(chēng)性而設(shè)計(jì)的替代箱線圖方法,以應(yīng)對(duì)這些局限性,包括:
  • Kimber(基于半四分位距)
  • Hubert(基于中位偶 Medcouple)
  • Adil(結(jié)合中位偶與經(jīng)典偏度)
  • Babura(基于Bowley偏度系數(shù))
  • Walker(動(dòng)態(tài)調(diào)整Bowley系數(shù))
  • Junsawang(動(dòng)態(tài)調(diào)整Hubert方法)
通過(guò)模擬,研究結(jié)果表明,傳統(tǒng)的Tukey式箱線圖極易出現(xiàn)淹沒(méi)與掩蔽問(wèn)題,而經(jīng)過(guò)偏度調(diào)整的穩(wěn)健變體——特別是那些基于四分位數(shù)偏度度量或中位偶調(diào)整的方法——實(shí)現(xiàn)了顯著更優(yōu)的性能
這些發(fā)現(xiàn)為實(shí)際應(yīng)用中選擇可靠的箱線圖方法提供了實(shí)用指導(dǎo)。另外,作者推出了新的R包:ggskewboxplots,整合了上述多種穩(wěn)健且偏態(tài)感知的箱線圖變體,且新包兼容ggplot2,便于用戶(hù)在現(xiàn)有工作流中直接使用。

??ggskewboxplots R包功能

函數(shù)
用途
geom_skewboxplot()
 替代 geom_boxplot(),繪制偏態(tài)感知箱線圖
summarise_skewbox()
 返回調(diào)整后的箱線圖統(tǒng)計(jì)量(五數(shù)概括+異常值)
compute_skew_stats()
內(nèi)部函數(shù),計(jì)算各方法的統(tǒng)計(jì)邊界

繪制箱線圖的方法與代碼演示

1. 安裝與加載

    install.packages("ggskewboxplots")# 或從GitHub安裝:# install.packages("remotes")# 如果你還沒(méi)安裝 remotes#remotes::install_github("mcavs/ggskewboxplots")install.packages("ggplot2")library(ggskewboxplots)library(ggplot2)

    2. 基礎(chǔ)使用示例,繪制簡(jiǎn)單箱線圖

      # 使用內(nèi)置數(shù)據(jù)集 mpgggplot(mpg, aes(x = class, y = hwy)) +  geom_skewboxplot(method = "walker") +  # 使用Walker方法  theme_minimal()

      3. 分組比較

        mpg$trans1 <- ifelse(mpg$trans=="manual(m5)","manual",                     ifelse(mpg$trans=="manual(m6)","manual","automatic"))ggplot(mpg, aes(x = class, y = hwy, fill = as.factor(trans1))) +  geom_skewboxplot(method = "adil") +  # 使用Adil方法  labs(fill = "Transmission") +  theme_minimal()+  theme(legend.position = "top")

        4. 調(diào)整參數(shù) k(觸須系數(shù))

          ggplot(mpg, aes(x = class, y = hwy)) +  geom_skewboxplot(method = "babura", k = 2) +  # 放寬觸須范圍  theme_bw()

          k 越大,檢測(cè)到的離群值越少,靈敏度越高。這使得該方法能夠適應(yīng)特定領(lǐng)域的極端耐受性。

          5. 提取統(tǒng)計(jì)摘要

          該R包還包含一個(gè)匯總函數(shù) summarise_skewbox()),用于程序化提取調(diào)整后的箱型圖統(tǒng)計(jì)數(shù)據(jù)。

            library(dplyr)
            mpg %>%  group_by(class) %>%  summarise_skewbox(hwy, method = "hubert")
            # 輸出為tibble,包含調(diào)整后的上下觸須、中位數(shù)、異常值等

            ?? 使用建議

            • 若數(shù)據(jù)明顯偏態(tài),建議使用 Babura、Walker 或 Junsawang 方法。

            • 若數(shù)據(jù)近似對(duì)稱(chēng),傳統(tǒng)Tukey方法仍可使用。

            • 可通過(guò) summarise_skewbox() 快速比較不同方法的統(tǒng)計(jì)結(jié)果。

            • 如果需要進(jìn)一步調(diào)整圖形(如顏色、主題、標(biāo)簽等),可沿用 ggplot2 的標(biāo)準(zhǔn)語(yǔ)法。

              轉(zhuǎn)藏 分享 獻(xiàn)花(0

              0條評(píng)論

              發(fā)表

              請(qǐng)遵守用戶(hù) 評(píng)論公約

              類(lèi)似文章 更多