我目前使用混合模型包EMMIXskew
,并且在我的数据(一些数值向量)上安装了一个 skew-t 分布。这个包有一些密度函数ddmst
,但我没有在这个包中看到概率密度函数,我需要一些!
我以为我能做的是
- 使用其他一些为 skew-t 分发提供 pdf 的包,例如 package
sn
withpst
,但问题是这个分发对 skew-t 分发有不同的定义,或者 - 我可以使用
integrate
onddmst
,但到目前为止它不起作用。
我尝试了类似的东西
library(EMMIXskew)
dat <- rdmst(n=1000,p=1,mean=0,cov=1,del=1)
mu=0.01
sigma=0.9
nu=1.1
del=3
pdmst <- function(x){
ddmst(x,n=length(dat),p=1,mean=mu,cov=sigma,nu=nu,del=del)
}
x=0.6
F_x <- integrate(pdmst,lower=-Inf,upper=x)
并且如果我假设我的数据具有参数的 3 模态
mu=c(0.01,2,-0.4)
sigma=c(0.9,2,2.3)
nu=c(1.1,1,0.8)
del=c(3,2,1.2)
pdmst <- function(x){
ddmst(x,n=length(dat),p=1,mean=mu,cov=sigma,nu=nu,del=del)
我收到这个错误
Error in ddmix(dat, n, p, 1, "mst", mean, cov, nu, del) : dat does not match n and p.
我真的不知道我做错了什么!