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

Rの解析に役に立つ記事
スポンサーリンク

データの高密度分布を理解しやすく表現する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&#12398;&#20998;&#24067;&#12434;&#30906;&#35469;
ggplot(data = TestData, aes(x = X_num_Data)) +
  geom_density()

#X_num_Data&#12391;Group&#27598;&#12398;Boxplot&#12434;&#30906;&#35469;
ggplot(data = TestData, 
       aes(x = Group, y = X_num_Data)) +
  geom_boxplot(fill = c("red"))
########

#Boxplot&#22411;&#12398;high-density regions(HDRs)&#12503;&#12525;&#12483;&#12488;:geom_hdr_boxplot&#12467;&#12510;&#12531;&#12489;
#HDRs&#12398;&#30906;&#29575;&#31684;&#22258;&#12434;&#25351;&#23450;(&#22615;&#33394;&#12398;&#22793;&#21270;):prob&#12458;&#12503;&#12471;&#12519;&#12531;
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) 

#&#12521;&#12464;&#22411;&#12398;high-density regions(HDRs)&#12503;&#12525;&#12483;&#12488;:geom_hdr_rug&#12467;&#12510;&#12531;&#12489;
#geom_point&#12467;&#12510;&#12531;&#12489;&#12392;&#21512;&#12431;&#12379;&#12427;&#12392;&#29702;&#35299;&#12375;&#12420;&#12377;&#12356;&#12391;&#12377;
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)) 

#&#25955;&#24067;&#22259;&#12395;HDRs&#12434;&#36969;&#24540;:hdr_bin&#12467;&#12510;&#12531;&#12489;
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")

#&#21442;&#32771;:geom_hdr_rug&#12467;&#12510;&#12531;&#12489;,hdr_bin&#12467;&#12510;&#12531;&#12489;&#12398;&#32068;&#12415;&#21512;&#12431;&#12379;
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コマンドの組み合わせ


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

タイトルとURLをコピーしました