2017-09-27 2 views
0

私は確率密度分布をプロットしてPima Indians Diabetes Data Setの特徴を分析しようとしています(データセットを得るためのリンクに従ってください)。私はまだ無効な0のデータを削除していないので、プロットはちょっと左に偏っていることがあります。ほとんどの部分については、ディストリビューションが正確に見える:なぜこのカーネル密度推定は1.0を超える値を持っていますか?

All Probability Density Distributions

私が(0.1と0.5の間のx〜のために)1.0を超える確率を示しDiabetesPedigreeためのプロット、の表情で問題を抱えています。私が理解するように、組み合わせた確率は1.0に等しくなければならない。

Probability Density Distribution for DiatebesPedigree

私は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() 
+1

* pdf上の* integral *はここに見られるべき矛盾はありません。いくつかの大雑把な時間を素早く計算できます.0と0.5の間の部分の平均値は1.5です。0.5と1の間の部分の平均値は0.5です。残りの曲線はごくわずかです。そして、0.5×1.5 + 0.5×0.5 = 1となる。だからすべてが正しいようです。 – ImportanceOfBeingErnest

+0

@ImportanceOfBeingErnest - 特定の値(または小さな範囲)の確率は、その時点で対応するy値を読み取ることによってグラフから読み取ることができます。可能性の最も高い確率は1.0であり、値が一定であることを意味します。その場合、他のすべての点は0の値を持つ必要があります。 1.75の確率は私にとって意味をなさない。あなたの推論では、他のすべてのグラフは積分値が1.0未満になります。 – maccaroo

+1

この場合、おそらく、KDEとPDFの統計や数学の書籍やGoogleを調べて、PDF/KDEの理解を調整したいと思うかもしれません。いずれの場合も、積分値が期待どおり1であることを示します。 – ImportanceOfBeingErnest

答えて

0

として正しくマークし、連続PDFが言うことはありません値が1未満であり、連続確率変数のpdfを用いて、関数p(x)は確率ではない。あなたは連続ランダムvaribalesとそのdistrubutionsを参照することができます

関連する問題