Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.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中的分布生成新的随机分布_R_Random_Distribution - Fatal编程技术网

根据我的数据在R中的分布生成新的随机分布

根据我的数据在R中的分布生成新的随机分布,r,random,distribution,R,Random,Distribution,我有一个数据集,包含27个观测值和相关的观测概率(介于0和1之间),如下所示 Data Prob_1 Prob_2 1 .1 1 2 0 1 3 0 1 4 0 .8 5 .3 .5 6 .6 .2 7 .9 .1 8 1 0 9 1 0 10 .6

我有一个数据集,包含27个观测值和相关的观测概率(介于0和1之间),如下所示

Data Prob_1 Prob_2 1 .1 1 2 0 1 3 0 1 4 0 .8 5 .3 .5 6 .6 .2 7 .9 .1 8 1 0 9 1 0 10 .6 0 11 .2 0 12 .2 .1 13 .6 .3 14 .4 .4 15 .1 .5 16 .1 .3 17 .4 0 18 .7 0 19 1 0 20 1 .1 21 1 .4 22 .8 .8 23 .4 1 24 .2 1 25 .1 1 26 0 1 27 0 1 一旦我有了test_dist,我就不知道如何绘制它来查看为点1到27生成的新数据的概率和方差带

我甚至不确定这是否是按照我的分布生成随机样本分布的最佳方法


谢谢

主旨

要从现有数据生成分布,您需要计算它的
mean
sd
, 你可以做如下的事情

(d_summary <- d %>% select(-Data,) %>% summarise_all(.funs = lst(mean,sd)))
    # A tibble: 1 x 4
  Prob_1_mean Prob_2_mean Prob_1_sd Prob_2_sd
        <dbl>       <dbl>     <dbl>     <dbl>
1       0.433       0.463     0.376     0.419
输出

# A tibble: 6 x 3
     Id prob_1_generated prob_2_generated
  <int>            <dbl>            <dbl>
1     1           0.0283           0.999 
2     2           0.525            0.447 
3     3           0.247            0.617 
4     4           0.519           -0.0744
5     5           0.817            0.520 
6     6           0.375            0.678 
d_tidy %>% 
  ggplot(aes(x = sample_values, group = hist_name, color = hist_name))+
  geom_density()
#一个tible:6 x 3
Id prob_1_生成prob_2_生成
1     1           0.0283           0.999 
2     2           0.525            0.447 
3     3           0.247            0.617 
4     4           0.519           -0.0744
5     5           0.817            0.520 
6     6           0.375            0.678 

希望这就是您想要的

d_out <- tibble(
  Id = 1:500,
  prob_1_sample = sample(d$Prob_1, 500, replace = T),
  prob_2_sample = sample(d$Prob_2, 500, replace = T)
)
注意:始终使用
dput(您的数据帧)
发布您的输入数据

整洁的格式便于使用ggplot进行绘图

d_tidy <- d_out %>% pivot_longer(cols = -Id, names_to = "hist_name",values_to = "sample_values") 
输出

点范围图用于
mean
sd
比较

d_tidy %>% 
  group_by(hist_name) %>% 
  summarise(Mean = mean(sample_values), SD = sd(sample_values)) %>% 
  ggplot(aes(x = factor(hist_name), y = Mean)) + 
  geom_pointrange(aes(ymax = Mean + SD, 
                      ymin = Mean - SD))
输出

# A tibble: 6 x 3
     Id prob_1_generated prob_2_generated
  <int>            <dbl>            <dbl>
1     1           0.0283           0.999 
2     2           0.525            0.447 
3     3           0.247            0.617 
4     4           0.519           -0.0744
5     5           0.817            0.520 
6     6           0.375            0.678 
d_tidy %>% 
  ggplot(aes(x = sample_values, group = hist_name, color = hist_name))+
  geom_density()

谢谢您的回复。我希望实际生成150份样本分布。然后绘制150个分布的平均值以及方差带。如果我的问题不清楚,我道歉。@sck我必须写新的答案。让我知道你的想法。非常感谢你的回答和你有用的笔记/提示。非常有用!!
d_tidy %>% 
  ggplot(aes(x = sample_values, group = hist_name, color = hist_name))+
  geom_density()
d_tidy %>% 
  group_by(hist_name) %>% 
  summarise(Mean = mean(sample_values), SD = sd(sample_values)) %>% 
  ggplot(aes(x = factor(hist_name), y = Mean)) + 
  geom_pointrange(aes(ymax = Mean + SD, 
                      ymin = Mean - SD))