我正在尝试使用fMultivar包绘制t分布的直方图,并显示相应的密度函数与直方图匹配。
问题是直方图似乎与密度函数不匹配。
以下是一个最小的例子。
library(fMultivar)
n = 50000
qtile = seq(-5,5,by=0.05)
xtt = rmvst(n,dim=1,df=3)
hist(xtt,300,xlim=c(-5,5),probability=TRUE)
lines(qtile,dmvst(qtile,dim=1,df=3),col='red')
xn = rmvsnorm(n,dim=1)
hist(xn,300,xlim=c(-5,5),probability=TRUE)
lines(qtile,dmvsnorm(qtile,dim=1),col='red')
xt = rt(n,df=3)
hist(xt,300,xlim=c(-5,5),probability=TRUE)
lines(qtile,dt(qtile,df=3),col='red')
很明显,xtt与密度函数不匹配。 xn和xt确实。
我在这里做错了吗?
答案 0 :(得分:0)
我不相信,至少关于随机抽奖是否给出了不同的分布。直方图看起来一样,我在几次运行中查看了{xt'和'xtt'的qqplot
,它们似乎排列得令人满意。将密度线与直方图进行比较确实表明密度估计值可能已经关闭,当我进行此检验时,我同意密度估计值之间存在系统差异:
plot( density(dt(qtile,df=3)- dmvst(qtile,dim=1,df=3) ) )
分布是双峰的,dmvst密度系统地大于尾部的dt密度。但是,我不明白为什么t分布必然与Skew-t分布相匹配。你不应该把它与dst {in package:sn}进行比较吗? (这是对包裹作者提出的最佳问题。)