我在论文中使用scipy.stats
模块中的函数mvn.mvnun()
来计算给定多元正态分布的CDF。审稿人问我如何估计CDF,因为CDF没有封闭形式。我猜可能使用抽样方法。为了了解它是如何工作的,我搜索了scipy
源代码库。然而,在scipy.stats
folder中,我没有看到mvn.py
,而是看到了mvn.pyf
。
在文件中,mvn.mvnun
似乎定义如下:
! -*- f90 -*-
! Note: the context of this file is case sensitive.
python module mvn ! in
interface ! in :mvn
subroutine mvnun(d,n,lower,upper,means,covar,maxpts,abseps,releps,value,inform) ! in :mvn:mvndst.f
integer intent(hide) :: d=shape(means,0)
integer intent(hide) :: n=shape(means,1)
double precision dimension(d) :: lower
double precision dimension(d) :: upper
double precision dimension(d,n) :: means
double precision dimension(d,d) :: covar
integer intent(optional) :: maxpts=d*1000
double precision intent(optional) :: abseps=1e-6
double precision intent(optional) :: releps=1e-6
double precision intent(out) :: value
integer intent(out) :: inform
end subroutine mvnun
字符串
但是,这个函数没有详细的定义,我想知道在哪里可以找到mvnun
的源代码,告诉我它是如何计算CDF的?
2条答案
按热度按时间3vpjnl9f1#
该实现是用Fortran编写的。
pyf
文件定义了mvndst.f中Fortran函数的接口9rbhqvlz2#
使用Alan Genz的这些例程的人应该参考并查看他的论文以获取更多信息。这似乎是mvnun. https://doi.org/10.2307/1390838背后的一个。