我有以下使用 gamlss 来拟合最佳分布的示例。
z0 是正态分布的随机变量,mu=1 且 sd=2 z1 应该适合最佳分布:在我的例子中,它返回 BCCG 为最佳分布 z2 符合正态分布 z3 应该适合建议的 BCCG,但是这失败了。为什么会出现这种情况?
此外,如果我绘制直方图,建议的 BCCG 似乎不是最合适的。
我哪里做错了?
我感谢任何帮助!
提前非常感谢您。
set.seed(123)
z0 <- rnorm(10000, 1,2)
z1 <- gamlss::fitDist(z0, k=2, type="realAll", trace=FALSE, try.gamlss=TRUE) #realplus | realAll
z1$fits
# BCCG BCCGo BCTo ...
# 22381.32 22381.32 22383.13 ...
z1$mu.coefficient; z1$mu.link
# [1] 0.9461219
# [1] "identity"
z1$sigma.coefficients; z1$sigma.link
# [1] 0.7571287
# [1] "log"
z2 <- gamlss(z0~1, family=NO)
z2$mu.coefficient; z2$mu.link
# (Intercept)
# 1.023001
# [1] "identity
z2$sigma.coefficients; z2$sigma.link
# (Intercept)
# 0.6889655
# [1] "log"
z3 <- gamlss(z0~1, family=BCCG)
# Error in gamlss(z0 ~ 1, family = BCCG) : response variable out of range
hist(z0)
hist(rBCCG(n=10000, mu=(z1$mu.coefficients), sigma=exp(z1$sigma.coefficients)))
hist(rNO(n=10000, mu=(z2$mu.coefficients), sigma=exp(z2$sigma.coefficients)))
我查阅了手册,但没有变得更明智。
感谢您的帮助。
我不知道你是如何得到结果的。 当我尝试代码时,它工作正常:
设置种子(123)
z0<- rnorm(10000, 1,2)
z1<- gamlss::fitDist(z0, k=2, type="realAll", trace=FALSE, try.gamlss=TRUE)
有 40 个警告(使用 warnings() 查看它们)
z1
家庭:c(“否”,“正常”) 拟合方法:“nlminb”
调用:gamlssML(公式 = y,族 = NO)
Mu 系数: [1] 0.9953
西格玛系数: [1] 0.6917
配合自由度:2 个剩余度。自由9998 全球偏差:42213.4 工商登记号码:42217.4 SBC:42231.8
z1$适合
NO exGAUS PE2 PE SN1 TF TF2 SN2 ST4 SEP2 SEP4
42217.43 42219.25 42219.27 42219.27 42219.31 42219.37 42219.37 42219.40 42221.08 42221.17 42221.21
SEP1 SEP3 ST1 GT JSU JSUo ST2 EGB2
沙什沙肖沙肖2
42221.22 42221.24 42221.27 42221.27 42221.27 42221.27 42221.27 42221.27 42221.27 42221.29 42221.29
ST5 ST3 SST LO NET RG GU
42221.33 42221.35 42221.35 42400.36 43011.09 43803.93 43885.79