ヒストグラムのビンの最適な数を計算する

私は、で使用するビンの数を決定するために、できるだけ最適な方法を見つけることに興味があります。ヒストグラム。私のデータは最大で30から350のオブジェクトの範囲である必要があります。特に、しきい値を適用しようとしています(大津の方法のように)。「良い」オブジェクトは、数が少なく、より分散している必要があります。 「悪い」オブジェクトから分離されているため、値の密度が高くなります。具体的な値のスコアは、オブジェクトごとに1〜10になります。5〜10個のオブジェクト、スコアは6〜10、20〜25個のオブジェクトがあります。スコア1〜4。大津の方法のようなものが低スコアのオブジェクトをしきい値設定することを一般的に可能にするヒストグラムビニングパターンを見つけたいと思います。しかし、私が見た大津の実装では、ビンのサイズは256であり、多くの場合、256よりもはるかに少ないデータポイントがあります。これは、256が適切なビン番号ではないことを示唆しています。データが非常に少ない場合、使用するビンの数を計算するにはどのようなアプローチを取る必要がありますか?

コメント

  • Sturges ルールはn < 200に使用できます。ここで、nは観測数です

回答

Freedman-Diaconis ルールは非常に堅牢で、実際にはうまく機能します。 bin-widthは $ h = 2 \ times \ text {IQR} \ times n ^ {-1/3} $ に設定されています。したがって、ビンの数は $(\ max- \ min)/ h $ です。ここで、 $ n $ は観測数、maxは最大値、minは最小値です。

ベースRでは、次を使用できます。

 hist(x, breaks="FD")  

このオプションのない他のプロットライブラリ(例:ggplot2)の場合、binwidthは次のように計算できます。

 bw <- 2 * IQR(x) / length(x)^(1/3) ### for example ##### ggplot() + geom_histogram(aes(x), binwidth = bw)  

コメント

  • @nico。 Rのデフォルトはbreaks = " Sturges "ですが、必ずしも良い結果が得られるとは限りません。
  • IQR
  • @KurtMuellerIQRは四分位範囲を意味します。第1四分位数と第3四分位数を探してください。違いは、IQRです。 IQRにはすでにRが付属しているので、使用できます。
  • 私が間違っていない場合、答えはnum_bins <- diff(range(x)) / (2 * IQR(x) / length(x)^(1/3))

は9年前には存在しませんでした。

回答

使用する場合ビンが少なすぎると、ヒストグラムはデータをうまく表現できません。ビンが多すぎると、くしの外観が壊れてしまい、分布の感覚も得られません。

1つ解決策は、すべての値を示すグラフを作成することです。ドットプロット、またはビンを必要としない累積度数分布のいずれか。

等間隔のビンで度数分布を作成する場合は、ビンの数(または幅)を決定する必要があります。決定は明らかに値の数に依存します。値がたくさんある場合、グラフは見栄えが良く、ビンがたくさんあるとより有益になります。これウィキペディアのページには、観測数からビンの幅を決定するためのいくつかの方法がリストされています。最も簡単な方法は、ビンの数を、ビニングする値の数の平方根に等しく設定することです。

島崎英明のこのページでは、別の方法について説明しています。計算は少し複雑ですが、うまくいくようです。ページの上部はJavaアプリ。それをスクロールして理論と説明を確認し、スクロールを続けて方法を説明する論文へのリンクを見つけます。

コメント

回答

たぶん紙「 DenbyとMallowsによるヒストグラムのバリエーション “が興味深いでしょう:

この新しい表示は「dhist」と呼ばれます(対角線上) -カットヒストグラム)は、等幅の履歴と等面積の履歴の両方の望ましい機能を保持します。データにスパイクがある場合は、ea histのような背の高い狭いビンが表示され、通常のヒストグラムのように孤立した外れ値が表示されます。

また言及されていますRのコードはリクエストに応じて入手できます。

回答

島崎-篠本法?

計算コストが高いように見えますが、良い結果が得られる場合があります。計算時間が問題にならない場合は、試してみる価値があります。このメソッドのいくつかの実装は、Java、MATLABなどで、十分に高速に実行される次のリンクにあります: web-interface

コメント

  • 実装は次のとおりです: gist.github.com/salotz/0158a99a75078b47538452111ec0faa2 。そして、はい、ビンの数の範囲を選択し、それぞれのヒストグラムを作成してからコストを計算し、次に最小のコストのものを選択する必要があるため、より高価です。

回答

これが厳密に適切な方法としてカウントされるかどうかはわかりませんが、ビンの幅が異なる複数のヒストグラムを作成し、ヒストグラムを選択する傾向があります。どのヒストグラムが私が最もよく伝えようとしている解釈に適合するかに基づいて使用します。これにより、ヒストグラムの選択にある程度の主観がもたらされますが、ヒストグラムを提供する人よりもデータを理解する時間がはるかに長いことに基づいて正当化します。そのため、非常に簡潔なメッセージを提供する必要があります。

私はまた、同じビン幅ではなく、各ビンに同じ数のポイントを持つヒストグラムを表示することの大ファンです。私は通常、これらは作成がより困難ですが、一定のビン幅よりもはるかに優れたデータを表していると思います。

コメント

  • 申し訳ありませんが、これを自動化された方法で行う必要があることをお伝えしておきます。 "自分の目的に最適なものが見つかるまで複数回実行するオプション"が勝ちました'私にはうまくいきません。計算で行う必要があります…
  • 同意します-"最適な"ビンが1つあるという考え幅は非常に単純化された仮定です。

回答

プログラムでビンの数を決定する必要がある場合は、通常、必要以上のビンを持つヒストグラムから始めます。ヒストグラムがいっぱいになったら、使用している方法に対してビンごとに十分なエントリができるまで、ビンを結合します。ポアソン分布をモデル化する場合-正規分布からの不確実性を使用して、10エントリ以上になるまでのカウント実験で不確実性をモデル化します。

回答

この回答は、氏の補足としてご覧ください。 RobHyndmanの回答

正確に同じ間隔でヒストグラムプロットを作成するためにまたは Freedman–Diaconisルールと基本的なRまたはggplot2パッケージのいずれかを使用した「binwidths」、1つを使用できますhist()関数の値の例breaksqsec Freedman–Diaconisルールを使用したmtcarsデータから。基本的なRでは、

x <- mtcars$qsec hist(x, breaks = "FD") 

一方、ggplot2使用するパッケージ

h <- hist(x, breaks = "FD", plot = FALSE) qplot(x, geom = "histogram", breaks = h$breaks, fill = I("red"), col = I("white")) 

または、代わりに

ggplot(mtcars, aes(x)) + geom_histogram(breaks = h$breaks, col = "white") 

これらはすべて、意図したとおりにまったく同じ間隔とビン数でヒストグラムプロットを生成します。

回答

I Au g / tの観測値が600あります。ビンサイズ1は、次のようになります。ここに画像の説明を入力

自動選択(ビンの範囲を省略)により、次のようになります。ここに画像の説明を入力

データは、1番目と2番目のグラフでOKのように見えます。データの整合性に問題はありません。ビンサイズ0.1(g / t)のみが質問に答えます:測定値は不正確で不正確でしたここに画像の説明を入力してください

私の判断:1。自然現象の真の価値を示すための地球上の測定技術はありません。すべての測定値は概算であり、一部は真の値に近いものです。サンプリングの設計、キャリブレーション、人間の資格などによって異なります。2。これが、分布が対称ではなく歪んでいる理由です。 3.それでも、分布の形は、少なくともおおよそ「ベルのような」セクションに似ている必要があります。一度に1つのベル(複数の地質環境がない限り)。 4.ビンサイズ操作による度数分布は、測定がどの程度正確で正確であったかについてのパターンを明らかにするのに役立ちます。そのため、石に切り取られたルールではなく、実験的にビンのサイズを選択する必要があります。

コメント

  • これは、あなたが道徳を綴らない限り答えなさい。 '道徳は次のとおりです。すべてのルールは経験則であり、一部のルールは他のルールよりも統計的根拠がありますが、分布の歪度が非常に高い場合、ほとんどのルールは期待どおりに機能しない可能性がありますまたは尖度。したがって、あなたの判断も使用してください。
  • コメントを追加しましたが、スレッドに役立つ新しい詳細が提供されているかどうかはわかりません。 1.1。私は問題ありませんが、ここでは問題ありません。 2.一部の分布はほぼ対称であるため、'は1から続きません。 3.疑わしい:ベル以外の形状が予想される状況はたくさんあります。 4.元の測定値の品質がヒストグラムから明らかでないことが多いため、疑わしいこともありますが、分布の非常に微細な構造に注意して調べるのが最適です。
  • 2。ほぼ対称は対称ではありません。妊娠しているかどうかにかかわらず、ほぼ妊娠することはできません。
  • 確かに、データの正確な対称性は非常にまれであるため、"対称"誰かがそれに合理的に反対するかもしれません。 'ほぼ対称になるのは非常に簡単です。そのため、歪度の測定値があります。
  • 注意しましたが、あなたのコメントは一般的であり、現在のコンテキストが不足しています。次に、"疑わしい"ではなく"間違っている。私の主なコメントは、あなたの答えは、ビンのサイズまたは同等の数のビンを選択する方法について、スレッドに実際には多くを追加しないということです。' 'が難しい別の例があるのは、質問のスピンであり、実際の答えではありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です