如何比较两个概率密度函数?

Posted

技术标签:

【中文标题】如何比较两个概率密度函数?【英文标题】:How to compare two Probability Density Functions? 【发布时间】:2018-06-12 14:11:47 【问题描述】:

我有两个概率密度函数,我想知道它们的分布是否相似。我知道 R 中的 KS 测试可以做到这一点,但是当我运行代码时,会发生错误。感谢您的帮助。

set.seed(100)
a=density(sample(x=1:30,size = 30,replace = T))
b=density(sample(x=1:40,size = 35,replace = T))
plot(a)
lines(b)

ks.test(a,b)
Error in ks.test(a, b) : 
 'y' must be numeric or a function or a string naming a valid function

【问题讨论】:

您需要提供ks.test 数据点,而不是密度估计值。 ks.test 旨在对原始数据进行操作。不是从原始数据生成的反对密度。如果您省略 density() 调用,它会起作用。 【参考方案1】:

您需要输入两个样本(数据值的数字向量)作为ks.test 的参数。

set.seed(100)
x <- sample(x=1:30,size = 30,replace = T)
y <- sample(x=1:40,size = 35,replace = T)
a=density(x)
b=density(y)
plot(a)
lines(b)

ks.test(x,y)

【讨论】:

以上是关于如何比较两个概率密度函数?的主要内容,如果未能解决你的问题,请参考以下文章

概率论与数理统计猴博士 笔记 p24-25 条件概率密度函数求两个随机变量形成的函数的分布

哈尔滨工业大学计算机学院-模式识别-课程总结-概率密度函数的参数估计

人工智能数学基础:两个存在映射关系的随机变量的概率密度函数关系研究

概率论与数理统计猴博士 笔记 p21-23 二维连续型求边缘分布函数和密度函数,已知两个边缘密度函数求f(x,y)

如何理解卷积(Convolution)?

如何绘制两个变量的密度函数?