我想知道是否有任何统计测试来“测试”双峰分布的重要性。我的意思是,我的数据有多少符合双峰分布?如果是这样,R程序中是否有任何测试?
检验双峰分布
正如评论中提到的,“双峰分布”的维基百科页面列出了八种针对单峰的多峰测试,并为其中的七个提供了参考。
R中至少有一些。例如:
该软件包
diptest
实现了 Hartigan 的浸渍测试。包中的
stamp
数据在bootstrap
Efron 和 Tibshirani 的Bootstrap 简介(包所依据的书)中使用了一个与引导模式数量有关的示例;如果您可以访问这本书,则可以使用该方法。Efron, B. 和 Tibshirani, R. (1993)引导程序简介。
查普曼和霍尔,纽约,伦敦。
--
CV 上有一个关于识别(即估计而不是测试) @whuber 搜索出现的模式数量的问题。值得阅读那里的答案。那里的一个回复(我的,碰巧)有一个链接到谷歌搜索,该链接出现了David Donoho 的这篇论文,内容是为模式数量构建单边 CI,当然可以将其用作测试(例如,如果单边区间不包括单峰情况,则可以拒绝单峰)。据我所知,这不是维基百科提到的测试之一。我不认为这个区间有 R 实现,但是(尽管 Donoho 在讨论它时倾向于使用相当复杂的工具)它实际上是一个非常简单的实现想法。这个想法与使用核密度估计的概念直接相关。
解决此问题的另一种可能方法是考虑生成您看到的数据的幕后可能发生的事情。也就是说,您可以考虑混合模型,例如高斯混合模型。例如,您可能认为您的数据要么来自单个正态总体,要么来自具有不同均值和方差的两个正态分布(以某种比例)的混合。当然,您不必相信只有一两个,也不必相信从中提取数据的人群需要是正常的。
有(至少)两个 R 包可以让您估计混合模型。一个包是flexmix,另一个是mclust。在估计了两个候选模型之后,我相信有可能进行似然比检验。或者,您可以使用参数引导交叉拟合方法( pdf )。