为了生成具有多元t分布的样本,我使用这个函数:
但是我现在正在寻找的是多元学生t分布本身,以便我可以计算维度大于1的元素的密度。
这将类似于scipy包中
def multivariatet(mu,Sigma,N,M):
'''
Output:
Produce M samples of d-dimensional multivariate t distribution
Input:
mu = mean (d dimensional numpy array or scalar)
Sigma = scale matrix (dxd numpy array)
N = degrees of freedom
M = # of samples to produce
'''
d = len(Sigma)
g = np.tile(np.random.gamma(N/2.,2./N,M),(d,1)).T
Z = np.random.multivariate_normal(np.zeros(d),Sigma,M)
return mu + Z/np.sqrt(g)
但是我现在正在寻找的是多元学生t分布本身,以便我可以计算维度大于1的元素的密度。
这将类似于scipy包中
stats.t.pdf(x, df, loc, scale)
,但是在多维空间中。
multivariatet
是如何以及为什么起作用的吗?似乎你将学生t分布与单变量gamma和多元正态相关联,我不明白它为什么有效?谢谢! - PyRsquared