2017-09-27 97 views
0

我试图通过绘制它们的概率密度分布来分析Pima Indians Diabetes Data Set(按照链接获取数据集)的功能。我还没有删除无效的0数据,因此这些图有时会在最左边显示出偏差。在大多数情况下,分布看准确:为什么此Kernel Density Estimation的值超过1.0?

All Probability Density Distributions

我与情节为DiabetesPedigree,其示出了(在0.1和0.5之间对于x〜)超过1.0的概率的外观的问题。据我了解,综合概率应该等于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上的*积分*为1.这里没有矛盾。您可以快速计算一些粗略的索引: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

在这种情况下,您可能需要查看一些统计数据或数学手册或Google的KDE和PDF来调整您对PDF/KDE的理解。在所有情况下,显示的积分是1。 – ImportanceOfBeingErnest

回答

0

由于正确地标,一个连续的PDF从来不说了值小于1,连续随机变量的pdf,函数p(x)不是概率。你可以参考连续随机变量及其分布

相关问题