2015-11-18 128 views
0

所以我使用pmvnorm和爲一個週期0值,如在協方差矩陣中的元素可根據某些參數的值改變:替換協方差矩陣(pmvnorm)

y<-c(0,0,0,0,0,0,0,0,0,0) 

...

library(mvtnorm) 
mu=c(18,12.72,(18*(c-d)+12.72*f)) 
covariance=matrix(c(5.7,0,5.7*(c-d),0,30.38,30.38*f^2,5.7*(c-d),30.38*f,(5.7*(c-d)^2+30.38*f^2)),3) 
H=c(15,-Inf,-Inf) 
L=c(Inf,15,g) 
for(i in 1:10) 
y[i]=pmvnorm(mean=mu,sigma=covariance,lower=H,upper=L) 

其中c,d,f等已經定義。 它的工作原理,但在某些情況下,我有第三r.v有0方差,它出現一個錯誤。是否有可能在協方差矩陣0值和極小值代替(如1E-06?)

謝謝

+0

什麼是'c','d','f'? –

回答

1

如果你只是想用一個很小的值,以取代0(如1E-06)

covariance = matrix(c(0,2,3,0), ncol = 2) 
covariance[covariance == 0] <- 1e-06 
covariance 

如果這並不幫助帕斯卡爾是正確的,你的參數的一些細節可能是有幫助的看向你的協方差矩陣的正定性問題。