Rで解析:high-density regionsプロットを作成「gghdr」パッケージ


データの高密度分布を理解しやすく表現するhigh-density regions(HDR)プロットを「ggplot2」パッケージで作成するパッケージの紹介です。

high-density regions(HDR)の詳細は「hdrcde」パッケージのHPに参考文献が紹介されています。HDRの詳細に興味のある方は確認してはいかがでしょうか。

hdrcde:http://pkg.robjhyndman.com/hdrcde/index.html

本パッケージを利用することでデータの分布で新たな発見があるかもしれません。

パッケージのバージョンは0.1.0。実行コマンドはwindows 11のR version 4.1.2で確認しています。

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("gghdr")

実行コマンド

詳細はコメント、パッケージヘルプを確認してください。

#パッケージの読み込み
library("gghdr")

###データ例の作成#####
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
set.seed(1234)
n <- 300
TestData <- tibble(Group = sample(paste0("Group", 1:4), n,
                                  replace = TRUE),
                   X_num_Data = sample(c(c(1:30), c(100:175)),
                                       n, replace = TRUE),
                   Y_num_Data = sample(c(51:100), n, replace = TRUE))

#X_num_Dataの分布を確認
ggplot(data = TestData, aes(x = X_num_Data)) +
  geom_density()

#X_num_DataでGroup毎のBoxplotを確認
ggplot(data = TestData, 
       aes(x = Group, y = X_num_Data)) +
  geom_boxplot(fill = c("red"))
########

#Boxplot型のhigh-density regions(HDRs)プロット:geom_hdr_boxplotコマンド
#HDRsの確率範囲を指定(塗色の変化):probオプション
ggplot(data = TestData, 
       aes(x = Group, y = X_num_Data)) + 
  geom_hdr_boxplot(prob = c(0.35, 0.45, 0.85, 0.95),
                   fill = c("red"), na.rm = FALSE,
                   show.legend = NA) 

#ラグ型のhigh-density regions(HDRs)プロット:geom_hdr_rugコマンド
#geom_pointコマンドと合わせると理解しやすいです
ggplot(data = TestData, 
       aes(x = X_num_Data, y = Y_num_Data)) + 
  geom_point() +
  geom_hdr_rug(fill = c("red"),
               prob = c(0.35, 0.45, 0.85, 0.95)) 

#散布図にHDRsを適応:hdr_binコマンド
ggplot(data = TestData, 
       aes(x = X_num_Data, y = Y_num_Data)) + 
  geom_point(aes(colour = hdr_bin(x = X_num_Data, y = Y_num_Data,
                           prob = c(0.35, 0.45, 0.85, 0.95)))) +
  labs(colour = "prob")

#参考:geom_hdr_rugコマンド,hdr_binコマンドの組み合わせ
ggplot(data = TestData, 
       aes(x = X_num_Data, y = Y_num_Data)) + 
  geom_point(aes(colour =
                   hdr_bin(x = X_num_Data, y = Y_num_Data,
                           prob = c(0.35, 0.45, 0.85, 0.95)))) +
  geom_hdr_rug(na.rm = FALSE, fill = c("red"),
               prob = c(0.10, 0.55, 0.65, 0.85)) +
  labs(colour = "prob")

出力例

・X_num_Dataの分布を確認

・X_num_DataでGroup毎のBoxplotを確認

・Boxplot型のhigh-density regions(HDRs)プロット:geom_hdr_boxplotコマンド

・ラグ型のhigh-density regions(HDRs)プロット:geom_hdr_rugコマンド

・散布図にHDRsを適応:hdr_binコマンド

・参考:geom_hdr_rugコマンドとhdr_binコマンドの組み合わせ


少しでも、あなたの解析が楽になりますように!!

スポンサードリンク

スポンサードリンク