假设我有一个X
未知分布的变量。在Mathematica中,通过使用SmoothKernelDensity
函数,我们可以得到一个估计的密度函数。该估计的密度函数可以与PDF
函数一起用于计算某个值的概率密度函数,例如X
以PDF[density,X]
“密度”为的形式表示SmoothKernelDensity
。如果R中具有这样的功能,那将是很好的。这就是Mathematica中的工作方式
http://reference.wolfram.com/mathematica/ref/SmoothKernelDistribution.html
作为一个示例(基于Mathematica函数):
data = RandomVariate[NormalDistribution[], 100]; #generates 100 values from N(0,1)
density= SmoothKernelDistribution[data]; #estimated density
PDF[density, 2.345] returns 0.0588784
在这里您可以找到有关PDF的更多信息:
http://reference.wolfram.com/mathematica/ref/PDF.html
我知道我可以density(X)
在R中使用它绘制密度函数,并通过使用ecdf(X)
它可以获得经验累积分布函数。基于我对Mathematica的描述,是否有可能在R中做同样的事情?
任何帮助和想法表示赞赏。
@Glen_b我想使用估计的密度来查找分布中其他值的概率。例如,我有一个向量范围从0到10的数据。此数据集仅包含0到10之间的70个唯一值。我可以绘制密度。现在假设我有兴趣在随机抽样中找到X = 7.5的概率,该概率不在观察到的数据中,如何获得呢?我知道这
—
阿敏
ecdf(X)
给了我7.5的等效百分位数,但这不是我想要的。
”找到X = 7.5的可能性 ”-这是您的问题!您是否具有连续分布(在这种情况下,实际答案是“ 0”),或者您没有(在这种情况下,您不应该使用密度估计,因为您没有密度)。
—
Glen_b-恢复莫妮卡2013年
ecdf(b)-ecdf(a)
抱歉,这是一个错误。我的意思是样本值的比例为7.5;当我输入最后几个单词时,我的儿子分散了我的注意力。您对未观察到事件的概率的样本估计为零。您想事先申请吗?您是否想要比例的置信区间而不是点估计?您的实际问题还不是R问题,您的问题是正确地解释了您真正想要的是什么。您可能应该编辑您的问题,或发布一个新问题。
—
Glen_b-恢复莫妮卡
density(x)
如您已经提到的,它给出了pdf的估计值,但是它的适用性取决于您想要密度的目的。请注意,例如,方差有偏差(在执行卷积时,您将内核的方差添加到数据的方差中,本身是无偏的估计值)-这样的偏差方差折衷是无处不在的。还有其他替代方法,例如对数样条曲线密度估计-但同样,其适用性部分取决于您要使用它做什么。