簡體   English   中英

R中的多元偏態正態

[英]multivariate skew normal in R

我正在嘗試使用來自R中的sn包的rmsn命令生成具有多元偏斜正態分布的隨機數。我希望,理想情況下,能夠獲得具有指定方差和協方差的三列數字,同時具有一個專欄強烈傾斜。 但我正在努力同時實現這兩個目標。

偏斜正態分布的帖子是相關的和有用的(以及下面的一些代碼的來源),但還沒有完全澄清我的問題。

我一直在努力:

a <- c(5, 0, 0) # set shape parameter
s <- diag(3) # create variance-covariance matrix
w <- sqrt(1/(1-((2*(a^2)/(1 + a^2))/pi))) # determine scale parameter to get sd of 1
xi <- w*a/sqrt(1 + a^2)*sqrt(2/pi) # determine location parameter to get mean of 0

apply(rmsn(n=1000, xi=c(xi), Omega=s, alpha=a), 2, sd)
colMeans(rmsn(n=1000, xi=c(xi), Omega=s, alpha=a))

列意味着SD對於第二列和第三列(沒有偏斜)而不是第一列(確實如此)是正確的。 任何人都可以澄清我上面的代碼或我的想法出錯了嗎? 我可能誤解了如何使用rmsn或輸出。 任何援助將不勝感激。

位置不是平均值(除非沒有歪斜)。 從文檔:

請注意,位置向量'xi'不代表分布的平均向量(如果'df <= 1',實際上甚至可能不存在),類似地,'Omega'不是分布協方差矩陣

你可能想用Omega=w代替Omega=s 這應該是一個方差矩陣:應該沒有平方根。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM