Resumo sobre Amostras

Prof. Davi Rocha

30/08/2020

Resumo de Amostragem 1

Amostra

Parte de uma população, selecionada usando alguma técnica que de chances iguais a todos os elementos da população de serem selecionados

Conceitos

É possível inferir sobre uma amostra

Enviesamento

Você subestima ou superestima o parâmetro da população

Causas:

É possível inferir sobre uma amostra

“Custo” da Amostra

Amostragem

Principais tipos de amostras

Aqui veremos só a AAS(Amostra Aleatória Simples), nos próximos resumos falaremos dos outros tipos

Amostras Aleatórias Simples(AAS)

• Um determinado número de elementos é retirado da população de forma aleatória

• Todos os elementos da população alvo do processo de amostragem, devem ter as mesmas chances de serem selecionados para fazer parte da amostra

Amostras Aleatórias Simples(AAS):

Vamos ver como fazer AAS no R

Amostras Aleatórias Simples no R(com reposição)

1) Vamos gerar 150 amostras de 0’s e 1’s, com reposição com probabilidade igual de ser escolhido(pode pensar como o lançamento de uma moeda, por exemplo 0=cara e 1=coroa)

No R

#Gerando a amostra
library(dplyr)
set.seed(2345)
amostra<- sample(x = c(0,1), size = 150,replace = TRUE, prob = c(0.5,0.5))
amostra
##   [1] 1 1 0 1 1 1 0 0 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0
##  [38] 0 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 0 1
##  [75] 0 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0
## [112] 0 1 1 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0
## [149] 0 0

Amostras Aleatórias Simples no R(com reposição)

Contando de 0’s e 1’s:

summary(as.factor(amostra))
##  0  1 
## 78 72

Vamos olhar a proporção de 0’s e 1’s:

  paste0('0: ', round(sum(amostra==0)/sum(summary(as.factor(amostra))),2 ))
## [1] "0: 0.52"
  paste0('1: ', round(sum(amostra==1)/sum(summary(as.factor(amostra))),2))
## [1] "1: 0.48"

Está muito próximo de 50% para cada! Se aumentarmos a amostra provavelmente ficarão mais próximo ainda de 50% acordo com a lei dos grandes números.

Amostras Aleatórias Simples no R(com reposição)

2) Vamos gerar 150 amostras de 0’s e 1’s, com reposição com probabilidade maior para 0’s. Você pode pensar numa moeda enviesada

amostra_2<-sample(x=c(0,1), 150, replace=TRUE, prob=c(0.7,0.3))
amostra_2
##   [1] 0 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0
##  [38] 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0
##  [75] 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0
## [112] 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1
## [149] 1 0

Contando de 0’s e 1’s:

#Quantidade de cada tipo
summary(as.factor(amostra_2))
##   0   1 
## 108  42

Amostras Aleatórias Simples no R(com reposição)

Vamos olhar a proporção de 0’s e 1’s:

  paste0('0: ', round(sum(amostra_2==0)/sum(summary(as.factor(amostra_2))),2 ))
## [1] "0: 0.72"
  paste0('1: ', round(sum(amostra_2==1)/sum(summary(as.factor(amostra_2))),2))
## [1] "1: 0.28"

Está muito próximo de 70% - 30% como queriamos!

Amostras Aleatórias Simples no R(sem reposição)

3)Agora vamos selecionar 150 amostras, de 1 a 1000, sem reposição, com probabilidades equivalentes

amostra = sample(c(1:1000), 150, replace = FALSE)
amostra
##   [1] 338 442 372 502  76 804 214 161 174 271 810  41 512 579 880 535 487 578
##  [19] 346 191 963 247 719 250 626  55 272  63 570 780 252 903 308   6 714 556
##  [37] 792 554 360 354 269 779 635 164 359  79 506 183 312 945 962 340 261 797
##  [55] 715 608 785 588 865  51 197 137 229 602 221 584 907 574 298 866 444 293
##  [73] 976 240 194 621 727 883 768 864 110 838 526 189 759 225 120  81 748 977
##  [91] 610 956 138 278 453 543 476 152 942 332 599 400 306 532 347 950 329 160
## [109] 559   3 567 163 501 187  82 569 524 469 765 826 292  25 459 718 595 933
## [127] 353 994 846 305  34 260 593 149 857 475 692 604 762 668 946 316 399 921
## [145] 280 665 892  60 146 456

Amostras Aleatórias Simples no R(sem reposição)

4) Gerando amostra de conjuntos de dados - Vamos gerar uma amostra aleatória de 30% dos dados cars

As primeiras linhas do dataset cars estão abaixo:

head(cars)
##   speed dist
## 1     4    2
## 2     4   10
## 3     7    4
## 4     7   22
## 5     8   16
## 6     9   10

Vamos ver quantas linhas ele tem:

dim(cars)
## [1] 50  2

Há 50 linhas.

Amostras Aleatórias Simples no R(sem reposição)

Agora vamos separar esse conjunto em duas partes um com 30% dos dados e outro em 70% dos dados. Esse tipo de divisão é feita para treinar modelos de Machine Learning por exemplo.

Para isso primeiro vamos criar uma amostra com 70% de 0’s e 30% de 1’s como fizemos anteriormente:

amostra= sample(x=c(0,1), size =50, replace=TRUE, prob = c(0.7,0.3) )

Vamos verificar a divisão:

summary(factor(amostra))
##  0  1 
## 37 13

Deixo para você se essa proporção está aproximadamente correta. Vamos agora dividir o conjunto cars usando essas duas amostras. Reforço que você poderia fazer esse mesmo processo para separar um conjunto em treino e teste para aplicar um algoritmo de Machine Learning! Vamos lá:

Amostras Aleatórias Simples no R(sem reposição)

cars_30<- cars[amostra==1,] 
cars_70 <- cars[amostra!=1,] 

Acima criamos o conjunto cars_30 com 30% aproximadamente dos dados cars e de forma aleatória! O mesmo com cars_70 só que com o resto dos 70% dos dados.

Vamos verificar quantos dados temos e ver alguns dados dos dois conjuntos gerados:

Para cars_30:

dim(cars_30)
## [1] 13  2
head(cars_30)
##    speed dist
## 1      4    2
## 2      4   10
## 3      7    4
## 5      8   16
## 14    12   24
## 16    13   26

Amostras Aleatórias Simples no R(sem reposição)

Para cars_70:

dim(cars_70)
## [1] 37  2
head(cars_70)
##    speed dist
## 4      7   22
## 6      9   10
## 7     10   18
## 8     10   26
## 9     10   34
## 10    11   17

Amostras Aleatórias Simples no R(sem reposição)

Verificando o tamanho da amostra:

##Do cars_30
nrow(cars_30)/nrow(cars)
## [1] 0.26
##Do cars_70
nrow(cars_70)/nrow(cars)
## [1] 0.74

Portanto dividimos o dataset cars em duas partes escolhidas de forma aleatória com 30% e 70% respectivamente.

Era isso que eu queria mostrar.

Keep calm and analysing data!