Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 6个性状的β分布模拟_R_Statistics_Simulation_Probability Theory_Probability Distribution - Fatal编程技术网

R 6个性状的β分布模拟

R 6个性状的β分布模拟,r,statistics,simulation,probability-theory,probability-distribution,R,Statistics,Simulation,Probability Theory,Probability Distribution,我如何在R中为1000个项目(行)生成一个1和0的矩阵,其中每个项目只能为6个可能性(列)中的一个特征1,特征a、B、C、D、E和F例如 item A B C D E F 1 1 0 0 0 0 0 2 0 1 0 0 0 0 3 1 0 0 0 0 0 4 0 0 0 0 1 0 5 0 0 0 0 1 0 6 0 0 1 0 0 0

我如何在R中为1000个项目(行)生成一个1和0的矩阵,其中每个项目只能为6个可能性(列)中的一个特征1,特征a、B、C、D、E和F例如

item A  B   C   D   E   F
1    1  0   0   0   0   0
2    0  1   0   0   0   0
3    1  0   0   0   0   0
4    0  0   0   0   1   0
5    0  0   0   0   1   0
6    0  0   1   0   0   0
7    0  0   0   1   0   0
8    0  1   0   0   0   0
9    1  0   0   0   0   0
10   0  0   0   0   1   0
因此,当绘制这6个特征时(在x轴A=0,B=0.2,C=0.4,D=0.6,E=0.8,F=1),它们的密度概率遵循β(3,7)分布


我的目标是生成一组类似的矩阵,每个矩阵表示不同的贝塔分布,例如(7,3)、(2,8)、(8,2)、(3,3),以便它们可以共同覆盖广泛的贝塔分布,如有可能,包括(0.5,0.5)以外的双峰分布

请查看模拟结果。我使用了通过prob参数设置概率分布的
sample
函数。对于B(0.5,0.5),可以在
0
1
邻域处调整
x
向量以排除无穷大:

set.seed(123)

x <- c(0.0, 0.2, 0.4, 0.6, 0.8, 1)
# for beta w/7 & 3 shapes
y <- dbeta(x, 7, 3)

# sample with probabilities y
samp <- data.frame(id = sample(1:6, 1000, y, replace = TRUE))

# prepare a diagonal matrix
m <- data.frame(diag(6), id = 1:6)

# merge to meet the condition only one '1' in each row
u <- merge(samp, m)

# remove id and adding letter names
u <- u[, -1]
names(u) <- LETTERS[1:6]

# validation 
# the result by simulation
colSums(u) / 1000
# A     B     C     D     E     F 
# 0.000 0.001 0.070 0.385 0.544 0.000 

# normalized beta distribution by built-in function
print(setNames(dbeta(x, 7, 3) / sum(dbeta(x, 7, 3)), LETTERS[1:6]), digits = 1)
# A     B     C     D     E     F 
# 0.000 0.002 0.076 0.383 0.539 0.000 
set.seed(123)

x
sample(c(rep(0,5),1),6)
我如何编辑它以确保生成1000个项目时,特征遵循beta(8,2)分布?beta是一个连续分布,但您似乎正在生成一个离散分布。你到底是如何在两者之间进行翻译的?贝塔分布之后到底应该有什么值?我应该说是广泛的贝塔分布。遵循这个在线计算器:对于Beta(7,3):A是(0,0),B是(0.2,0.01032192),C是(0.4,0.37158912),D是(0.6,1.88116992),E是(0.8,2.64241152),F是(0,0);对于β(1,1):A是(0,1),B(0.2,1),C(0.4,1),D(0.6,1),E(0.8,1),F(0,1);对于β(0.5,0.5):A为(0100),B为(0.2,0.795774716),C为(0.4,0.649747334),D为(0.6,0.649747334),E为(0.8,0.7957747155),F为(0100);对于β(3,3):A为(0,0),B为(0.2,0.768),C为(0.4,1.728),D为(0.6,1.728),E为(0.8,0.768),F为(0,1);