来自fMultivar的随机变量与密度函数不匹配

时间:2012-03-08 01:36:22

标签: r statistics distribution

我正在尝试使用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确实。

我在这里做错了吗?

1 个答案:

答案 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}进行比较吗? (这是对包裹作者提出的最佳问题。)