Udd*_*din 2 random numbers r multinomial
我想从具有三个值(例如 )的多项分布生成大小为 20 的样本1,2 and 3。例如,样本可以是这样的sam=(1,2,2,2,2,3,1,1,1,3,3,3,2,1,2,3,...1)
下面的代码可以工作,但没有得到预期的结果
> rmultinom(20,3,c(0.4,0.3,0.3))+1
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20]
[1,] 1 1 3 2 2 1 1 2 3 2 3 2 1 2 2 3 1 2 2 2
[2,] 2 1 2 1 3 2 4 2 1 2 2 1 1 2 1 2 3 2 3 3
[3,] 3 4 1 3 1 3 1 2 2 2 1 3 4 2 3 1 2 2 1 1
Run Code Online (Sandbox Code Playgroud)
我不期待这个矩阵。有什么帮助值得赞赏吗?
小智 6
我想从多项分布生成大小为 20 的样本
没问题,但你应该记住每个样本都是一个向量,例如,如果你掷三个骰子,你可以得到 (2,5,1),或 (6,2,4),或 (3,3,3) 等。
你还应该记住,rmultinom(n, size, prob)“n”是样本大小,“size”是放入 K 个盒子中的物体总数(当掷三个骰子时,大小为 3,K=6)。
具有三个值,例如 1,2 和 3。
没问题,但您应该记住,它将rmultinom返回每个值的计数,即您可以将您的三个值视为行名称(您的三个值可以是“红色,绿色,蓝色”,“左,中,右”, ETC。)
> rmultinom(n=20, size=3, prob=c(0.4,0.3,0.3))
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20]
[1,] 2 1 1 2 1 1 3 1 1 3 2 1 0 0 0 1 3 2 2 1
[2,] 1 1 1 1 0 1 0 1 2 0 1 2 2 2 1 1 0 0 1 0
[3,] 0 1 1 0 2 1 0 1 0 0 0 0 1 1 2 1 0 1 0 2
Run Code Online (Sandbox Code Playgroud)
在第一个样本(第一列)中,“1”出现 2 次,“2”出现 1 次,“3”出现 0 次。在第二个和第三个样本中,每个值出现 1 次,...在第七个样本中,“1”出现 3 次,依此类推。
由于您将三个 ( size=3) 对象放入 K=3 个盒子中(盒子的数量与向量prob),每列的总和就是对象的数量。
例如,样本可以是这样的
sam=(1,2,2,2,2,3,1,1,1,3,3,3,2,1,2,3,...1)
这看起来不像是大小为 20 的样本,因为单个多项试验的结果是一个向量,而不是一个数字。
让我们回到骰子。我掷骰子size=3:
> rmultinom(n=1, size=3, prob=rep(1/6,6))
[,1]
[1,] 0
[2,] 2
[3,] 0
[4,] 0
[5,] 1
[6,] 0
Run Code Online (Sandbox Code Playgroud)
我得到两个“2”和一个“5”。这是尺寸 1 的样本。这是尺寸 10 的样本:
> rmultinom(n=10, size=3, prob=rep(1/6,6))
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 0 0 1 0 0 0 0 1 1 1
[2,] 1 1 0 3 0 0 1 1 1 1
[3,] 2 1 0 0 0 0 2 0 0 0
[4,] 0 0 2 0 1 1 0 1 0 1
[5,] 0 0 0 0 1 2 0 0 1 0
[6,] 0 1 0 0 1 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
华泰
| 归档时间: |
|
| 查看次数: |
10398 次 |
| 最近记录: |