簡體   English   中英

如何在R中創建具有概率分布的矩陣

[英]How to create a matrix with probability distribution in R

我想在R中使用元素[-1,0,1]分別以概率[1 / 6、2 / 3、1 / 6]創建矩陣。 機率可能會在運行時發生變化。 對於靜態概率,我得到了輸出,但是問題是概率的動態變化。 例如,如果我使用[sqrt(3),0,-sqrt(3)]為上述概率創建矩陣,則所需的輸出為。

注意:如上所述,概率不應為靜態。 它在運行時可能會有所不同。

請幫助解決此問題。

在此處輸入圖片說明

假設您想要一個2x3矩陣:

matrix(sample(c(-1,0,1), size=6, replace=TRUE, prob=c(1/6,2/3,1/6)), nrow=2)

因此,您可以使用prob定義的prob從所需的值中進行采樣。 這只是一個向量,但是您可以隨后使用matrix將其變成所需形狀的matrix 用變量而不是值代替概率,以使其不靜態。

如果應該根據某種方案分配數字,而不是根據概率隨機繪制數字,請復制向量元素並對其進行隨機排序:

 matrix(sample(rep(c(-1,0,1), times=c(1,4,1))), nrow=2)

您可以嘗試生成一個mxn矩陣:

sample.dynamic.matrix <- function(pop.symbols, probs, m, n) {
   samples <- sample(pop.symbols, m*n, prob = probs, replace=TRUE)
   return(matrix(samples, nrow=m))
}

set.seed(123)
sample.dynamic.matrix(-1:1, c(1/6,2/3,1/6), 2, 3)
#     [,1] [,2] [,3]
#[1,]    0    0   -1
#[2,]    1   -1    0

暫無
暫無

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

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