本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

Rで解析:最適なビン幅・バンド幅を自動選択する「sshist」パッケージの紹介

密度分布を推定する際、ヒストグラムや核密度推定の「幅」を決めるには経験則に頼りがちですが、それを統計的に最適化したい場面があります。本パッケージは、島崎・篠本法を実装し、期待される誤差を最小限にする最適なパラメータを一括で計算してくれます。これにより、時系列データの変動率推定やデータの内在的な構造を探る作業が格段にスムーズになります。さらに OpenMP を活用した C++ バックエンドを採用しているため、大規模なデータでも高速に計算可能です。

パッケージバージョンは0.2.4。Windows 11 x64 (build 26200)のR version 4.6.1で確認しています。

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

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

# パッケージのインストール
install.packages("sshist")
# パッケージの読み込み
library("sshist")
# コマンド例実行で必要なパッケージを読み込み
library("ggplot2")
スポンサーリンク

コマンド例

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

正規分布データに対する最適な二次元ビン数の推定と可視化:sshist_2dコマンド

オプション意味初期値
x数値ベクトル、または2列の行列・データフレーム。X座標を指定
y数値ベクトル。Y座標を指定(xが行列の場合は無視)NULL
n_min整数。軸あたりの最小ビン数を指定2L
n_max整数またはNULL。軸あたりの最大ビン数を指定(データ解像度の限界と標本サイズにより自動的に制限される)200L
# 乱数のシード値を設定する
set.seed(42)

# 正規分布からサンプルデータを生成する
x <- rnorm(500)
y <- rnorm(500)

# sshist_2d を実行して結果を格納する
res <- sshist_2d(x, y)
# 結果をヒートマップとしてプロットする
plot(res)

# ggplot2でプロット
ggplot(data.frame(x = x, y = y), aes(x, y)) +
  # 最適化されたビン数を設定してヒートマップを描画する
  geom_bin2d(bins = c(res$opt_nx, res$opt_ny)) +
  # ビンの色を Viridis カラースケールで表現する
  scale_fill_viridis_c() +
  # グラフのタイトルを設定する
  ggtitle(sprintf("Optimal 2D Bins: %dx%d", res$opt_nx, res$opt_ny)) +
  # テーマを最小限に設定して描画する
  theme_minimal()

・結果をヒートマップとしてプロットする

・ggplot2でプロット


この記事が誰かの役に立ちますように。

スポンサーリンク
価格および配送状況は変更される場合があります。購入時は商品ページをご確認ください。
当サイトに表示されている商品情報はAmazonから提供されたものであり、更新または削除される場合があります。
karada-goodはAmazonアソシエイトとして、適格販売により収入を得ています。