R

如何生成具有特定均值的 1 到 4 之間的隨機整數?

  • January 5, 2020

我需要在 中生成 100 個隨機整數R,其中每個整數介於 1 和 4 之間(因此為 1、2、3、4),並且平均值等於特定值。

如果我在 1 和 5 之間繪製隨機統一數字並得到floor,我的平均值為 2.5。

x = floor(runif(100,min=1, max=5)) 

例如,我需要將平均值固定為 1.9 或 2.93。

我想我可以生成添加到 100 * 均值的隨機整數,但我不知道如何限制為 1 到 4 之間的隨機整數。

我同意 X’ian 的觀點,即問題未明確。然而,有一個優雅的、可擴展的、高效的、有效的和通用的解決方案值得考慮。

因為樣本均值和样本大小的乘積等於樣本總和,所以問題涉及生成隨機樣本 $ n $ 集合中的值 $ {1,2,\ldots, k} $ 那筆錢 $ s $ (假設 $ n \le s \le kn, $ 當然)。

為了解釋所提出的解決方案,並且我希望證明**優雅的說法,**我提供了這個採樣方案的圖形解釋。佈置一個網格 $ k $ 行和 $ n $ 列。選擇第一行中的每個單元格。隨機(和統一)選擇 $ s-n $ 行中剩餘的單元格 $ 2 $ 通過 $ k. $ 觀察的價值 $ i $ 在樣本中是在列中選擇的單元格數 $ i: $

數字

這 $ 4\times 100 $ 網格由未選定單元格處的黑點和選定單元格處的彩色補丁表示。它被生成以產生平均值 $ 2, $ 所以 $ s=200. $ 因此, $ 200-100=100 $ 細胞在頂部隨機選擇 $ k-1=3 $ 行。顏色代表每列中選定單元格的數量。有 $ 28 $ 那些, $ 47 $ 雙打, $ 22 $ 三分球,和 $ 3 $ 四肢。有序樣本對應於列中的顏色序列 $ 1 $ 通過列 $ n=100. $

為了演示可擴展性和效率,這裡有一個R根據此方案生成樣本的命令。問題涉及案件 $ k=4, n=100 $ 和 $ s $ 是 $ n $ 乘以所需的樣本平均值:

tabulate(sample.int((k-1)*n, s-n) %% n + 1, n) + 1

因為sample.int需要 $ O(s-n) $ 時間和 $ O((k-1)n) $ 空間,並且tabulate需要 $ O(n) $ 時間和空間,這個算法需要 $ O(\max(s-n,n)) $ 時間和 $ O(kn) $ 空間:這是可擴展的。和 $ k=4 $ 和 $ n=100 $ 我的工作站只需要 12 微秒來執行這個計算:這很有效

(這裡是對代碼的簡要說明。注意整數 $ x $ 在 $ {1,2,\ldots, (k-1)n} $ 可以唯一地表示為 $ x = nj + i $ 在哪裡 $ j \in {0,1,\ldots, k-2} $ 和 $ i\in{1,2,\ldots, n}. $ 該代碼採用了這樣的示例 $ x, $ 將他們轉換為他們的 $ (i,j) $ 網格坐標,每個計算多少次 $ i $ 出現(範圍從 $ 0 $ 通過 $ k-1 $ ) 並添加 $ 1 $ 每個計數。)

為什麼這可以被認為是有效的?一個原因是這種抽樣方案的分佈特性很容易計算出來:

  • 它是*可交換的:*任何樣本的所有排列都是等可能的。
  • 價值的機會 $ x \in{1,2,\ldots, k} $ 出現在位置 $ i, $ 我會寫成 $ \pi_i(x), $ 通過基本的超幾何計數參數獲得$$ \pi_i(x) = \frac{\binom{k-1}{x-1}\binom{(n-1)(k-1)}{s-n-x+1}}{\binom{n(k-1)}{ s-n}}. $$ 例如,與 $ k=4, $ $ n=100, $ 和一個平均值 $ 2.0 $ (以便 $ s=200 $ ) 機會是 $ \pi = (0.2948, 0.4467, 0.2222, 0.03630), $ 與上述樣本中的頻率非常吻合。以下是圖表 $ \pi_1(1), \pi_1(2), \pi_1(3), $ 和 $ \pi_1(4) $ 作為總和的函數:

圖 2

  • 價值的機會 $ x $ 出現在位置 $ i $ 而價值 $ y $ 出現在位置 $ j $ 類似地發現為$$ \pi_{ij}(x,y) = \frac{\binom{k-1}{x-1}\binom{k-1}{y-1}\binom{(n-1)(k-1)}{s-n-x-y+2}}{\binom{n(k-1)}{ s-n}}. $$

這些概率 $ \pi_i $ 和 $ \pi_{ij} $ 使人們能夠將Horvitz-Thompson 估計量應用於這種概率抽樣設計,併計算各種統計量分佈的前兩個矩。

最後,該解決方案是通用的,因為它允許簡單、易於分析的變化來控制採樣分佈。例如,您可以選擇網格上每行具有指定但不相等概率的單元格,或者使用類似甕的模型來隨著採樣的進行修改概率,從而控制列計數的頻率。

引用自:https://stats.stackexchange.com/questions/443445

comments powered by Disqus