我想提出的离散近似的二元正态分布。也就是说,我想计算一个矩阵,其中每个条目都是落入下图中一个小平方的概率。离散逼近二元正态分布
这里是我做的那么远。
library(mvtnorm)
library(graphics)
euclide = function(x,y){sqrt(x^2+y^2)}
maxdist = 40
sigma = diag(2)
m = matrix(0,ncol=maxdist*2 + 1, nrow=maxdist*2 + 1)
for (row in -maxdist:maxdist){
for (col in -maxdist:maxdist){
if (euclide(abs(row), abs(col)) < maxdist){
lower = c(row-0.5, col-0.5)
upper = c(row+0.5, col+0.5)
p = pmvnorm(lower = lower , upper = upper, mean = c(0,0), sigma = sigma)
} else {
p = 0
}
m[row + maxdist + 1,col + maxdist + 1] = p
}
}
m = m[rowSums(m)!=0,colSums(m)!=0]
contour(m, levels = exp(-20:0), xlim=c(0.3,0.7), ylim=c(0.3,0.7))
它工作正常。这很慢(对于大的maxdist
),但我希望能够提高计算时间。但是,这是不是我的主要问题...
的主要问题是,我的方法,我不能改变接近中心做出更好的近似接近均值的小方块的数量。我只能在周围添加方块。换句话说,我希望能够设置双变量正态分布的两个轴的方差。
你听说过[Tauchen]的(http://www.sciencedirect.com/science/article/pii/0165176586901680)?从'N(0,1)'生成联合正态变量画? (例如[slide 269-272 here](http://www.ssc.upenn.edu/~fdiebold/Teaching706/TimeSeriesSlides.pdf))或者你是否正在为另一个特定目的而进行此练习? – MichaelChirico
我可以问你想用什么目的来使用你正在构建的矩阵? –
这是一个分散的核心(分散到一个给定距离的细胞的概率),细节的细节稍微复杂一些,因为细胞内有子细胞。模拟在细胞中存在的个体和随机交配比在空间连续体上存在的个体在计算上更快。这就是为什么我想要这种离散近似。 –