私は確率密度分布をプロットしてPima Indians Diabetes Data Setの特徴を分析しようとしています(データセットを得るためのリンクに従ってください)。私はまだ無効な0のデータを削除していないので、プロットはちょっと左に偏っていることがあります。ほとんどの部分については、ディストリビューションが正確に見える:なぜこのカーネル密度推定は1.0を超える値を持っていますか?
私が(0.1と0.5の間のx〜のために)1.0を超える確率を示しDiabetesPedigreeためのプロット、の表情で問題を抱えています。私が理解するように、組み合わせた確率は1.0に等しくなければならない。
私はDiatebesPedigreeプロットのためのコードを分離しましたが、同じことがdataset_index
値変更することで、他の人のために動作します:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import gaussian_kde
dataset_index = 6
feature_name = "DiabetesPedigree"
filename = 'pima-indians-diabetes.data.csv'
data = pd.read_csv(filename)
feature_data = data.ix[:, dataset_index]
graph_min = feature_data.min()
graph_max = feature_data.max()
density = gaussian_kde(feature_data)
density.covariance_factor = lambda : .25
density._compute_covariance()
xs = np.arange(graph_min, graph_max, (graph_max - graph_min)/200)
ys = density(xs)
plt.xlim(graph_min, graph_max)
plt.title(feature_name)
plt.plot(xs,ys)
plt.show()
* pdf上の* integral *はここに見られるべき矛盾はありません。いくつかの大雑把な時間を素早く計算できます.0と0.5の間の部分の平均値は1.5です。0.5と1の間の部分の平均値は0.5です。残りの曲線はごくわずかです。そして、0.5×1.5 + 0.5×0.5 = 1となる。だからすべてが正しいようです。 – ImportanceOfBeingErnest
@ImportanceOfBeingErnest - 特定の値(または小さな範囲)の確率は、その時点で対応するy値を読み取ることによってグラフから読み取ることができます。可能性の最も高い確率は1.0であり、値が一定であることを意味します。その場合、他のすべての点は0の値を持つ必要があります。 1.75の確率は私にとって意味をなさない。あなたの推論では、他のすべてのグラフは積分値が1.0未満になります。 – maccaroo
この場合、おそらく、KDEとPDFの統計や数学の書籍やGoogleを調べて、PDF/KDEの理解を調整したいと思うかもしれません。いずれの場合も、積分値が期待どおり1であることを示します。 – ImportanceOfBeingErnest