我有一个由 生成的数据样本R
,rnorm(50,0,1)
因此数据显然呈正态分布。但是,R
不“知道”有关数据的分布信息。
有没有一种方法R
可以估计我的样本来自哪种分布?如果没有,我将使用该shapiro.test
功能并继续进行。
我有一个由 生成的数据样本R
,rnorm(50,0,1)
因此数据显然呈正态分布。但是,R
不“知道”有关数据的分布信息。
有没有一种方法R
可以估计我的样本来自哪种分布?如果没有,我将使用该shapiro.test
功能并继续进行。
有MASS 包fitdistr
中的功能或fitdistrplus 包中的一些功能。以下是后者的一些例子。
require(fitdistrplus)
set.seed(1)
dat <- rnorm(50,0,1)
f1 <- fitdist(dat,"norm")
f2 <- fitdist(dat,"logis")
f3 <- fitdist(dat,"cauchy")
所以例如
> f1
Fitting of the distribution ' norm ' by maximum likelihood
Parameters:
estimate Std. Error
mean 0.1004483 0.11639515
sd 0.8230380 0.08230325
你可以看到情节
plotdist(dat,"norm",para=list(mean=f1$estimate[1],sd=f1$estimate[2]))
plotdist(dat,"logis",para=list(location=f2$estimate[1],scale=f2$estimate[2]))
plotdist(dat,"cauchy",para=list(location=f3$estimate[1],scale=f3$estimate[2]))
所以它看起来像是一个正态分布
但也可能作为逻辑分布(您将需要更大的样本来区分它们的尾部)
尽管使用 qqplot 并查看 CDF,您可以看出这可能不是 Cauchy 分布