2次元ヒストグラムの最適なビン幅


8

1Dヒストグラムで最適なビン幅を選択するための多くのルールがあります(例を参照)

2次元のヒストグラムに最適な等ビン幅の選択を適用するルールを探しています。

そのようなルールはありますか?おそらく、1Dヒストグラムのよく知られたルールの1つは簡単に適応できます。


どんな目的に最適ですか?また、2Dヒストグラムには通常のヒストグラムと同じ問題が発生するため、カーネル密度の推定などの代替手段に注意を向けることもできます。
whuber

1
ルールやSturgesの式のような単純なものを問題に直接適用しない理由はありますか?いずれにしても、各次元に沿って同じ数の読み取り値があります。もう少し洗練されたものが必要な場合(Freedman-Diaconisルールなど)、各次元のビンの数の間の最大値を「単純に」独立して返すことができます。本質的には、とにかく離散化された(2d)KDEを調べているので、とにかくそれが最良の選択です。(n)
usεr11852

手動でビン幅を手動で選択する必要がないために主観的に?ノイズが多すぎず、平滑化されていない、基になるデータを表す幅を選択するには?私はあなたの質問を理解しているのかわかりません。「最適」は曖昧すぎる言葉ですか?ここで他にどのような解釈を見ることができますか?他にどのように私は質問を言いましたか?はい、KDEは認識していますが、2Dヒストグラムが必要です。
ガブリエル

@usεr11852回答のコメントを拡張してください。詳細を教えてください。
ガブリエル

@Glen_b答えの形にしてくれませんか?私の統計に関する知識はかなり限られているし、あなたが言うことの多くは私の頭の中にあるので、できるだけ多くの詳細をいただければ幸いです。
ガブリエル

回答:


4

私のアドバイスは一般に、可能な場合は平滑化すること、つまりカーネル密度推定(またはログスプライン推定などの他のメソッド)を実行することが1-Dよりもさらに重要であるということです。ヒストグラム。whuberが指摘しているように、ヒストグラムの外観にだまされる可能性は非常に高いです。

たとえば、平均積分二乗誤差(MISE)を最適化しようとしている場合、より高い次元に適用されるルールがあります(ビンの数は、観測数、分散、次元、および「形状」に依存します)。カーネル密度推定とヒストグラムの両方。

[確かに、一方の問題の多くはもう一方の問題でもあるので、このウィキペディアの記事の情報のいくつかは関連があります。]

この形状への依存は、最適に選択するためには、何をプロットするかをすでに知っている必要があることを意味するようです。ただし、妥当な仮定を行う準備ができている場合は、それらを使用できます(たとえば、「おおよそガウス」と言う人もいます)。あるいは、適切な「プラグイン」推定器を使用できます。機能的。

ワンド、1997 は1次元のケースをカバーしています。その記事を入手できた場合は、より高い次元の状況にも関連するもの(可能な限りの分析について)を調べてください。(ジャーナルにアクセスできない場合は、インターネット上のワーキングペーパー形式で存在します。)[1]

高次元での分析はやや複雑ですが(カーネル密度推定の1次元からr次元に進むのとほとんど同じように)、次元にはnのべき乗になる項があります。

1992年スコットのセクション3.4 Eqn 3.61(p83)は漸近的に最適なビン幅を与えます:[2]

h=R(fk)1/2(6i=1dR(fi)1/2)1/(2+d)n1/(2+d)

ここで、 は粗さの項であり(唯一の可能なものではありません)、はに関するの導関数であると思います項。R(f)=Rdf(x)2dxfifithx

したがって、として縮小するビン幅を示唆する2Dの。n1/4

独立通常の変数の場合には、近似ルールが、寸法にビン幅であり、、、漸近的に最適値を示しそして、、ディメンションの人口標準偏差である。hk3.5σkn1/(2+d)hkkσkk

相関がある 2変量正規の場合、ビン幅はρ

hi=3.504σi(1ρ2)3/8n1/4

分布が歪んでいる、または裾が重い、またはマルチモーダルである場合、一般にはるかに小さいビン幅が得られます。その結果、通常の結果は、多くの場合、bindwithの上限にすぎません。

もちろん、平均積分二乗誤差ではなく、他の基準に関心がないことは完全に可能です。

[1]:ワンド、MP(1997)、
"ヒストグラムのビン幅のデータ・ベースの選択"、
アメリカの統計学者 51、59-64

[2]:スコット、DW(1992)、
多変量密度推定:理論、実践、および視覚化
John Wiley&Sons、Inc.、ホーボーケン、ニュージャージー州、米国。


グレン、あなたの答えのパラメータは何ですか?σk
ガブリエル

1
謝罪いたします; 私が理解しているとおりに意味を追加しました-次元人口sd 。(私は以前にコメントにpdfへのリンクがありましたが、後でそれが本からの章であることを理解した後-私の答えのスコット参照-私はリンクを削除しました。)k
Glen_b -Reinstate Monica

4

固定数のデータがある場合(つまり、両方の次元で同じ数の読み取りがある場合)、すぐに使用できます。N

  1. 平方根の規則は切り捨てられます()(つまり、Excelの方法:))N
  2. スタージスのルール()、log2N+1
  3. 利用可能なデータポイントの数のみに基づく他のいくつかのルール(リックのルールなど)。

各次元でビンの共通数を見つける。M

一方で、基本的に帯域幅ように定義するFreedman–Diaconisルールのようなより堅牢なものを試してみるとよいでしょう。h

h=2IQR(x)N1/3

ここで、IQRはデータ四分位範囲です。次に、各次元に沿ったビンの数を次の値に等しいものとして計算します。xM

M=(max(x)min(x))/h

データ両方の次元にわたってこれを行います。これにより、各次元で使用する必要がある2つの、場合によっては異なる数のビンが得られます。あなたは、単純にあなたが情報を「失う」しませんので、大きい方を取ります。x

それでも、4番目のオプションは、サンプルをネイティブの2次元として扱い、各サンプルポイントのノルムを計算してから、サンプルのノルムに対してフリードマンダイアコニスルールを実行することです。つまり:

xnew=x12+x22

OK、ここに私が説明する手順のコードとプロットがあります:

rng(123,'twister');     % Fix random seed for reproducibility
N = 250;                % Number of points in our sample

A = random('normal',0,1,[N,2]);  % Generate a N-by-2 matrix with N(0,1)
A(:,2) = A(:,2) * 5;             % Make the second dimension more variable


% The sqrt(N) rule:    
nbins_sqrtN = floor(sqrt(N));

% The Sturges formula:    
nbins_str = ceil(log2(N) +1);

% The Freedman–Diaconis-like choice:    
IQRs = iqr(A);              % Get the IQ ranges across each dimension
Hs = 2* IQRs* N^(-1/3);     % Get the bandwidths across each dimension
Ranges = range(A);          % Get the range of values across each dimension
% Get the suggested number of bins along each dimension
nbins_dim1 = ceil(Ranges(1)/Hs(1)); % 12 here
nbins_dim2 = ceil(Ranges(2)/Hs(2)); % 15 here
% Get the maximum of the two
nbins_fd_1 = max( [nbins_dim1, nbins_dim2]);


% The Freedman–Diaconis choice on the norms

Norms = sqrt(sum(A.^2,2));        % Get the norm of each point in th 2-D sample
H_norms = 2* iqr(Norms)* N^(-1/3);% Get the "norm" bandwidth
nbins_fd_2 = ceil(range(Norms)/ H_norms);   % Get number of bins 

[nbins_sqrtN nbins_str nbins_fd_1 nbins_fd_2]

% Plot the results / Make bivariate histograms
% I use the hist3 function from MATLAB
figure(1);
subplot(2,2,1);
hist3(A,[ nbins_sqrtN nbins_sqrtN] );
title('Square Root rule');

subplot(2,2,2);
hist3(A,[ nbins_str nbins_str] );
title('Sturges formula rule');

subplot(2,2,3);
hist3(A,[ nbins_fd_1 nbins_fd_1]);
title('Freedman–Diaconis-like rule');

subplot(2,2,4);
hist3(A,[ nbins_fd_2 nbins_fd_2]);
title('Freedman–Diaconis rule on the norms');

ここに画像の説明を入力してください

他の人が指摘したように、スムージングは​​ほぼ確実にこのケースに適しています(つまり、KDEを取得する)。1次元のサンプルルールから2次元のサンプルルールへの直接的な一般化(それに伴うすべての問題を含む)に関するコメントで私が説明したことについて、これがあなたにアイデアを与えると思います。特に、ほとんどの手順では、サンプルにある程度の「正常性」があると想定しています。明らかに正常に分布していないサンプルがある場合(例:レプトクール)、これらの手順(1-Dでも)は非常に失敗します。


1
ガブリエルが役に立ってくれて嬉しいですが、Glen_bの回答を受け入れることを提案します。私の回答で説明されている方法は便利ですが、1次元の場合から一般化した発見的方法です。コメントに書いたポイントを説明するためにそれらを追加しました。私は本当に高く評価してくれます(ですから、まだ投票していない場合でも、役に立つ回答をしてくれると私に賛成投票してください:))が、正しい答えはGlen_bの回答です。
usεr11852
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.