如何使用r识别给定数据的分布
我有以下数据,我需要确定数据的分布。请帮忙如何使用r识别给定数据的分布,r,R,我有以下数据,我需要确定数据的分布。请帮忙 x <- c(37.50,46.79,48.30,46.04,43.40,39.25,38.49,49.51,40.38,36.98,40.00,38.49,37.74,47.92,44.53,44.91,44.91,40.00,41.51,47.92,36.98,43.40) x首先,您可以绘制直方图并覆盖密度 hist(x, freq = FALSE) lines(density(x)) 然后,您会看到分布是双峰的,它可以是两个分布或
x <- c(37.50,46.79,48.30,46.04,43.40,39.25,38.49,49.51,40.38,36.98,40.00,38.49,37.74,47.92,44.53,44.91,44.91,40.00,41.51,47.92,36.98,43.40)
x首先,您可以绘制直方图并覆盖密度
hist(x, freq = FALSE)
lines(density(x))
然后,您会看到分布是双峰的,它可以是两个分布或任何其他分布的混合
一旦确定了候选分布,“qqplot”可以帮助您直观地比较分位数。一种简洁的方法是使用提供分布拟合工具的FitDistripPlus
软件包。以您的数据为例
library(fitdistrplus)
descdist(x, discrete = FALSE)
现在,您可以尝试适应不同的分布。例如:
normal_dist <- fitdist(x, "norm")
作为一般观点,我建议您看看交叉验证,在交叉验证中详细讨论了主题。您也可以阅读Delignette Muller和Dutang的论文-FitDistripPlus:拟合分布的R软件包,如果您对如何使用Cullen和Frey图的更详细解释感兴趣,可以使用。请定义(在统计语言方面有严格要求)你所说的“确定数据的分布”是什么意思?你所说的“确定分布”是什么意思?你可以使用hist(x)
查看其形状。关于“严格的证明”(实际上从来都不严格…),做假设检验…。这似乎更多的是一个统计数据而不是一个编程问题。请OP澄清您正在尝试做什么。我认为OP正在寻找一种工具,可以识别哪个已知分布最能描述数据。是否有一个功能/代码/包可以自动识别给定数据的分布?是否有其他方法可以自动识别分布?CV讨论的链接是这个答案非常重要。(+1)如何解释这个cullen和freygraph@VanathaiyanSCF图将给定分布的偏斜和峰度与指定分布进行比较。我建议你看看简历、帮助文件和链接文件中的链接讨论。用几句话概括/过于简化:*对于某些分布,如正态分布,偏度和峰度只有一个可能值,因此图上有一个点。对于其他分布,表示可能值的区域。这是非常简单的回答,你也应该考虑其他方法,但是CF图是一个很好的开始。
plot(normal_dist)