9: Sampling

Based on the Chapter 7 on ModernDive. Code for Quiz 11.

  1. Load the R package we will use.
library(tidyverse)
library(moderndive) #install before loading
  1. Quiz questions

Question:

7.2.4 in Modern Dive with different sample sizes and repetitions

Modify the code for comparing different sample sizes from the virtual `bowl

Segment 1: sample size = 26

1.a? Take 1180 samples of size of 26 instead of 1000 replicates of size 25 from the bowl dataset. Assign the output to virtual_samples_26

virtual_samples_26 <- bowl %>%
  rep_sample_n(size = 26, reps = 1180)

1.b) Compute resulting 1180 replicates of proportion red

virtual_prop_red_26 <- virtual_samples_26 %>%
  group_by(replicate) %>%
  summarize(red = sum(color == "red")) %>%
  mutate(prop_red = red / 26)
virtual_prop_red_26
# A tibble: 1,180 x 3
   replicate   red prop_red
 *     <int> <int>    <dbl>
 1         1     6    0.231
 2         2     9    0.346
 3         3    10    0.385
 4         4    12    0.462
 5         5    10    0.385
 6         6     8    0.308
 7         7    14    0.538
 8         8    10    0.385
 9         9     7    0.269
10        10    13    0.5  
# ... with 1,170 more rows

1.c) Plot distribution of virtual_prop_red_26 via a histogram

use labs to

ggplot(virtual_prop_red_26, aes(x = prop_red)) +
  geom_histogram(binwidth = 0.05, boundary = 0.4, color = "white") +
  labs(x = "Proportion of 26 balls that were red",
       title = "26")


Segment 2: sample size = 55

2.a) Take 1180 samples of size of 55 instead of 1000 replicates of size 50. Assign the output to virtual_samples_55

virtual_samples_55 <- bowl %>%
  rep_sample_n(size = 55, reps = 1180)

2.b) Compute resulting 1180 replicates of proportion red

virtual_prop_red_55 <- virtual_samples_55 %>%
  group_by(replicate) %>%
  summarize(red = sum(color == "red")) %>%
  mutate(prop_red = red / 55)
virtual_prop_red_55
# A tibble: 1,180 x 3
   replicate   red prop_red
 *     <int> <int>    <dbl>
 1         1    19    0.345
 2         2    16    0.291
 3         3    25    0.455
 4         4    19    0.345
 5         5    13    0.236
 6         6    23    0.418
 7         7    24    0.436
 8         8    20    0.364
 9         9    25    0.455
10        10    27    0.491
# ... with 1,170 more rows

2.c) Plot distribution of virtual_prop_red_55 via a histogram

use labs to

ggplot(virtual_prop_red_55, aes(x = prop_red)) +
  geom_histogram(binwidth = 0.05, boundary = 0.4, color = "white") +
  labs(x = "Proportion of 55 balls that were red",
       title = "55")


Segment 3: sample size = 110

3.a) Take 1180 samples of size of 110 instead of 1000 replicates of size 50. Assign the output to virtual_samples_110

virtual_samples_110 <- bowl %>%
  rep_sample_n(size = 110, reps = 1180)

3.b) Compute resulting 1180 replicates of proportion red

virtual_prop_red_110 <- virtual_samples_110 %>%
  group_by(replicate) %>%
  summarize(red = sum(color == "red")) %>%
  mutate(prop_red = red / 110)
virtual_prop_red_110
# A tibble: 1,180 x 3
   replicate   red prop_red
 *     <int> <int>    <dbl>
 1         1    46    0.418
 2         2    50    0.455
 3         3    48    0.436
 4         4    47    0.427
 5         5    46    0.418
 6         6    57    0.518
 7         7    36    0.327
 8         8    30    0.273
 9         9    42    0.382
10        10    38    0.345
# ... with 1,170 more rows

3.c) Plot distribution of virtual_prop_red_110 via a histogram

use labs to

ggplot(virtual_prop_red_110, aes(x = prop_red)) +
  geom_histogram(binwidth = 0.05, boundary = 0.4, color = "white") +
  labs(x = "Proportion of 110 balls that were red",
       title = "110")


Calculate the standard deviations for your three sets of 1180 values of prop_red using the standard deviation

n = 26

virtual_prop_red_26 %>%
  summarize(sd = sd(prop_red))
# A tibble: 1 x 1
      sd
   <dbl>
1 0.0914

n = 55

virtual_prop_red_55 %>%
  summarize(sd = sd(prop_red))
# A tibble: 1 x 1
      sd
   <dbl>
1 0.0633

n = 110

virtual_prop_red_110 %>%
  summarize(sd = sd(prop_red))
# A tibble: 1 x 1
      sd
   <dbl>
1 0.0451

The distribution with sample size, n = 110, has the smallest standard deviation (spread) around the estimated proportion of red balls.

ggsave(filename = "preview.png",
       path = here::here("_posts", "2021-05-04-sampling"))