カーネル密度分布とは
- 曲線つまり連続データとなっているために、Xに対するY を取得できる。この時Xに対するY(確率密度)を得る。
- 曲線の形を見ることでサンプルの母集団の数を推測できる
- 分布について多いところ、少ないところを視覚化できる
カーネル密度分布を生成する手順
- ヒストグラムを作成する。
これが元データである。 - カーネル関数を決める。
各標本点からの広がり方を決める。ガウス分布が基本、ほかにも一様分布、三角化を選べる - バンドを指定→広がる幅
各ヒストグラムの広がる大きさを指定する。小さすぎるとまとまらない。大きすぎると分析できないくらいに滑らかになる。
GMMとの比較
実装
histの戻り値
pyplot.histは戻り値としてデータ、ビン、パッチを返す。
matplotlib.pyplot.hist — Matplotlib 3.1.1 documentation
ビンの幅を求める
bins[1:] – bins[:-1]によりbinsの幅を求めることができる。
bins[1:] - bins[:-1] # array([0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292])
カーネル密度分布
Choice of bin size and location can lead to representations that have qualitatively different features.
This misalignment between points and their blocks is a potential cause of the poor histogram results seen here.
ビン幅およびその場所の選択の選択によってはヒストグラムの正当性に問題が生じる。ヒストグラムは□ブロックを積み上げたものである。ビン幅が広い場合には、本来データがない部分も、ヒストグラム上ではデータが存在することになる。
まずビンと実際のデータのずれを解消するために、データが存在する位置にブロックを積み上げる。これにより実際のデータを反映した形状になる。しかし形状としてはごつごつしているので取り扱いにくい

そこで各点における正規分布を計算し、グラフに表示することでなだらかな曲線を得ることができる。
これがカーネル密度分布の基本である。

