Cluster Sampling

I would like to understand what’s going on in this script. Why is require mean, standard deviation in a cluster sampling? and what is the meaning of “rnorm(200, mean=7, sd=1)” in the context of this data.frame?

set.seed(1) #make this example reproducible

df ← data.frame(tour = rep(1:10, each=20), experience = rnorm(200, mean=7, sd=1)) #create data frame

head(df) #view first six rows of data frame

clusters ← sample(unique(df$tour), size=4, replace=F) #randomly choose 4 tour groups out of the 10

cluster_sample ← df[df$tour %in% clusters,] #define sample as all members who belong to one of the 4 tour groups

table(cluster_sample$tour) #view how many customers came from each tour

Oi Luiz! Você enviou a pergunta via twitter em português, então vou responder em português.

O código que você postou está em: Cluster Sampling in R (With Examples) - Statology (pode ser útil para contexto, e para consultas futuras)

DISCLAIMER: vou responder baseado na interpretação do código postado.

Vamos lá. As dúvidas que você escreveu (porque é necessário a média e desvio padrão? o que significa rnorm?) estão relacionadas com a a segunda linha (em que df é criado). Essa linha está criando uma base de exemplo, que posteriormente é usada na explicação dos clusters.

O exemplo dado nesse site que você enviou é o seguinte: imagina que uma empresa oferece “city tours” (aqueles rolês onde você entra em um ônibus, e o ônibus circula pela cidade para conhecer), e eles oferecem 10 tours (vou chamar de passeio) por dia. Em cada passeio, eles pedem uma nota da experiência das pessoas (de 1 até 10). Esse contexto tá no site que você mesmo passou.

Então, essa base que está sendo criada tem 2 variáveis: tour (qual é o passeio, dentre os 10 passeios por dia), e experience é a nota de 0 a 10.

Para criar a base de exemplo, então é usado duas funções: rep e rnorm.

A função rep() é usada para repetir valores.

rep(1:10, 20) significa que quero repetir os números de 1 até 10, e cada um deve ser repetido 20 vezes. Veja abaixo:

     rep(1:10, each=20)
      [1]  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1
     [19]  1  1  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2
     [37]  2  2  2  2  3  3  3  3  3  3  3  3  3  3  3  3  3  3
     [55]  3  3  3  3  3  3  4  4  4  4  4  4  4  4  4  4  4  4
     [73]  4  4  4  4  4  4  4  4  5  5  5  5  5  5  5  5  5  5
     [91]  5  5  5  5  5  5  5  5  5  5  6  6  6  6  6  6  6  6
    [109]  6  6  6  6  6  6  6  6  6  6  6  6  7  7  7  7  7  7
    [127]  7  7  7  7  7  7  7  7  7  7  7  7  7  7  8  8  8  8
    [145]  8  8  8  8  8  8  8  8  8  8  8  8  8  8  8  8  9  9
    [163]  9  9  9  9  9  9  9  9  9  9  9  9  9  9  9  9  9  9
    [181] 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
    [199] 10 10

A função rnorm() simula valores com distribuição normal.
Usar rnorm(200, mean = 7, sd = 1) significa que: queremos simular uma distribuição normal com 200 números, com média 7 e desvio padrão 1.
Quem escreveu o post usou isso para “gerar” notas para o exemplo.

Veja o resultado (esses números podem mudar):

    > rnorm(200, mean = 7, sd = 1)
      [1] 6.373546 7.183643 6.164371 8.595281 7.329508 6.179532
      [7] 7.487429 7.738325 7.575781 6.694612 8.511781 7.389843
     [13] 6.378759 4.785300 8.124931 6.955066 6.983810 7.943836
     [19] 7.821221 7.593901 7.918977 7.782136 7.074565 5.010648
     [25] 7.619826 6.943871 6.844204 5.529248 6.521850 7.417942
     [31] 8.358680 6.897212 7.387672 6.946195 5.622940 6.585005
     [37] 6.605710 6.940687 8.100025 7.763176 6.835476 6.746638
     [43] 7.696963 7.556663 6.311244 6.292505 7.364582 7.768533
     [49] 6.887654 7.881108 7.398106 6.387974 7.341120 5.870637
     [55] 8.433024 8.980400 6.632779 5.955865 7.569720 6.864945
     [61] 9.401618 6.960760 7.689739 7.028002 6.256727 7.188792
     [67] 5.195041 8.465555 7.153253 9.172612 7.475510 6.290054
     [73] 7.610726 6.065902 5.746367 7.291446 6.556708 7.001105
     [79] 7.074341 6.410479 6.431331 6.864821 8.178087 5.476433
     [85] 7.593946 7.332950 8.063100 6.695816 7.370019 7.267099
     [91] 6.457480 8.207868 8.160403 7.700214 8.586833 7.558486
     [97] 5.723408 6.426735 5.775387 6.526599 6.379633 7.042116
    [103] 6.089078 7.158029 6.345415 8.767287 7.716707 7.910174
    [109] 7.384185 8.682176 6.364264 6.538355 8.432282 6.349304
    [115] 6.792619 6.607192 6.680007 6.720887 7.494188 6.822670
    [121] 6.494043 8.343039 6.785421 6.820443 6.899809 7.712666
    [127] 6.926436 6.962366 6.318340 6.675730 7.060160 6.411106
    [133] 7.531496 5.481606 7.306558 5.463550 6.699024 6.471720
    [139] 6.347905 6.943103 5.085641 8.176583 5.335028 6.536470
    [145] 5.884080 6.249181 9.087167 7.017396 5.713699 5.359394
    [151] 7.450187 6.981440 6.681932 6.070638 5.512540 5.924808
    [157] 8.000029 6.378733 5.615573 8.869291 7.425100 6.761353
    [163] 8.058483 7.886423 6.380757 9.206102 6.744973 5.575505
    [169] 6.855600 7.207538 9.307978 7.105802 7.456999 6.922847
    [175] 6.665999 6.965274 7.787640 9.075245 8.027392 8.207908
    [181] 5.768677 7.983896 7.219925 5.532750 7.521023 6.841245
    [187] 8.464587 6.233918 6.569788 6.073891 6.822896 7.402012
    [193] 6.268252 7.830373 5.791917 5.952016 8.441158 5.984153
    [199] 7.411975 6.618924

Então a linha em que você tem dúvida faz essas duas coisas: cria uma base de exemplo, com as colunas tour e experience. Os valores de tour são sempre 20 pessoas, em 10 passeios diferentes. E as notas em experience são geradas com a função rnorm() . Ao final, essa é a base que será usada no exemplo:

set.seed(1)
df <- data.frame(tour = rep(1:10, each=20), 
                          experience = rnorm(200, mean=7, sd=1))
head(df)
#>   tour experience
#> 1    1   6.373546
#> 2    1   7.183643
#> 3    1   6.164371
#> 4    1   8.595281
#> 5    1   7.329508
#> 6    1   6.179532

Created on 2021-04-26 by the reprex package (v2.0.0)

1 Curtida

Muito Obrigado, profa. Beatriz. Ajudou muito!!

1 Curtida