我有以下数据框。
IN <- c(3.5, 5.75, 9, 13.25, 13, 9.5, 9.25, 6.75, 7, 4.25, 3.25, 1.75, 0)
OUT <- c(0.25, 2, 5.25, 8.5, 10.5, 11, 11.75, 9.25, 9.5, 7, 3.75, 4, 3.5)
dat <- data.frame(IN, OUT)
rownames(dat) <- c("10~11", "11~12", "12~13", "13~14", "14~15", "15~16", "16~17", "17~18", "18~19", "19~20", "20~21", "21~22", "22~23")
此数据是从上午10:00到下午11:00在餐厅中每小时测量四天的平均人数。
我想分别知道IN和OUT数据的分布。我如何在R中知道这一点?否则,有没有一种好的方法可以通过R对此进行分析?
答案 0 :(得分:2)
fitdistrplus
软件包可以帮助您解决此类问题,但是您需要知道要检查哪些候选分布。让我们尝试正常,均匀和指数:
library(fitdistrplus)
fit.in1 <- fitdist(dat$IN, "norm")
fit.in2 <- fitdist(dat$IN, "unif")
fit.in3 <- fitdist(dat$IN, "exp")
然后您可以绘制一些诊断信息:
par(mfrow=c(2,2)
denscomp(list(fit.in1,fit.in2,fit.in3),legendtext=c("Normal","Uniform","Exponential"))
qqcomp(list(fit.in1,fit.in2,fit.in3),legendtext=c("Normal","Uniform","Exponential"))
cdfcomp(list(fit.in1,fit.in2,fit.in3),legendtext=c("Normal","Uniform","Exponential"))
ppcomp(list(fit.in1,fit.in2,fit.in3),legendtext=c("Normal","Uniform","Exponential"))
正常吗?也许:
> shapiro.test(dat$IN)
Shapiro-Wilk normality test
data: dat$IN
W = 0.96548, p-value = 0.8352
在[0,14]上是否统一?也许
> ks.test(dat$IN,"punif",0,14)
One-sample Kolmogorov-Smirnov test
data: dat$IN
D = 0.16758, p-value = 0.8024
alternative hypothesis: two-sided
这些检验的零假设是您所认为的分布。另一种选择是,发行版不是您要测试的对象。因此,较小的p值意味着特定的分布不适合拟合。
答案 1 :(得分:0)