2017-08-18 44 views
1

我目前使用R斯坦來擬合多元正態分佈。當前模型是R STAN - 如何制定多元協方差矩陣

b〜MVN(0,Sigma公司)

其中

B =(X1,X2,X3)
0 =(0,0,0)

西格瑪=
enter image description here

我能夠使用建立的共方差矩陣如下:

parameters { 
    row_vector b[3];  
    real<lower=0> b_sigma[3]; 
    real<lower=-1, upper=1> b_rho[3]; 
} 

transformed parameters { 
    matrix[3,3] b_SIGMA; 

    b_SIGMA[1,1] = b_sigma[1]^2; 
    b_SIGMA[2,2] = b_sigma[2]^2; 
    b_SIGMA[3,3] = b_sigma[3]^2; 

    b_SIGMA[1,2] = b_rho[1] * b_sigma[1] * b_sigma[2] ; 
    b_SIGMA[2,1] = b_rho[1] * b_sigma[1] * b_sigma[2] ; 

    b_SIGMA[3,1] = b_rho[2] * b_sigma[1] * b_sigma[3]; 
    b_SIGMA[1,3] = b_rho[2] * b_sigma[1] * b_sigma[3]; 

    b_SIGMA[2,3] = b_rho[3] * b_sigma[2] * b_sigma[3]; 
    b_SIGMA[3,2] = b_rho[3] * b_sigma[2] * b_sigma[3]; 
} 

但是這對我來說似乎非常手動和低效。有沒有建立這種差異結構的適當或推薦的方法?

在一個高度相關的筆記PROC MIXED in SAS提供了一個「框外」變異結構,如非結構化,複合對稱性,自迴歸等廣泛的陣列。是否有STAN等價物或我需要手動構建它們每次?

注意:由於這個問題更具理論性,我認爲數據+完整的工作示例並不是有益的。我很高興提供數據+完整的工作示例,但是如果人們想要玩弄它或認爲不然。

回答

2

您的構造不能保證產生正定矩陣。有一個cov_matrix類型和一個cholesky_cov_matrix類型,將保證正確的確定性。後者符合multi_normal_cholesky參數。我們通常建議縮放一個相關矩陣,對於這個矩陣有平行類型。

斯坦中沒有任何現成的方差結構。但是在RStanArm中有幾個,可能更多的是你要找的。它是一種比斯坦本身更高級的語言,可以指定自迴歸和快速空間模型以及各種層次結構。它會自動用QR分解預條件。