XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX PRÁTICA EM R COM ESTATÍSTICA I XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
AMOSTRAGEM SIMPLES: A amostragem aleatória simples é o processo mais elementar e frequentemente utilizado. Corresponde a uma amostra de elementos retirados ao acaso da população, isto é, cada indivíduo é escolhido completamente ao acaso e cada membro da população tem a mesma probabilidade se ser incluído na amostra.
#150 amostras, de zero e 1, com reposição, e probabilidades equivalentes
amostra=sample(c(0,1),150,replace=T,prob=c(0.5,0.5))
#vai extrair amostra de zero e 1
#150= quantidade de amostras que ele vai gerar
#replace= amostra que ele vai gerar será com reposição
#prob= indica a probabilidade para o zero e para o 1 respectivamente - neste exemplo as probabilidade são ao acaso
amostra
[1] 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1
[66] 1 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0
[131] 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 0 0 1 0 0
summary(as.factor(amostra))
0 1
77 73
150 amostras, de zero e 1, com reposição, mais chances para zero
amostra=sample(c(0,1),150,replace=T,prob=c(0.7,0.3))
amostra
[1] 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 0 0 0
[66] 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1
[131] 0 0 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 1 1
summary(as.factor(amostra))
0 1
107 43
150 amostras, de 1 a 1000, sem reposição, prob. equivalentes
amostra=sample(c(1:1000),150,replace=F)
amostra
[1] 37 517 986 520 14 940 714 54 258 328 455 861 390 893 604 708 514 957 976 159 871 415 235 35 411 872 961 668 781 277 599 646
[33] 576 911 259 484 803 909 178 630 760 999 732 368 424 728 60 573 176 989 279 224 495 280 103 641 219 325 456 242 715 78 698 958
[65] 413 721 499 120 180 472 937 307 742 949 402 5 168 614 530 618 172 111 8 67 636 752 824 153 85 888 782 426 359 65 565 969
[97] 254 648 150 563 860 162 123 864 535 247 799 451 476 356 425 21 902 410 600 438 637 405 372 695 891 41 83 204 578 241 779 412
[129] 729 467 218 136 930 608 679 457 478 436 86 33 670 847 193 705 213 972 831 523 868 574
Aplicação prática do uso de amostras simples
#Gerando amostra de conjuntos de dados (30% dos dados de iris)
amostra=sample(c(0,1),150,replace=T,prob=c(0.7,0.3))
summary(as.factor(amostra))
0 1
116 34
Gerando amostra
#veja que eu criei nova variável, pois não quero alterar os dados originais, ou seja, eu quero ter meus próprios dados.
amostrairis=iris[amostra==1,]
amostrairis
#podemos ver a dimensão dos dados através do dim
dim(amostrairis)
[1] 34 5
Repetir experimento
set.seed(2345)
sample(c(1000),1)
[1] 483
Repetindo
set.seed(2345)
sample(c(1000),1)
[1] 483
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX AMOSTRAGEM SISTEMÁTICA: Na amostragem sistemática, seleciona-se as unidades amostrais através de um esquema preestabelecido de sistematização, visando cobrir a população em toda a sua extensão, obtendo-se um modelo uniforme.
#install.packages("TeachingSampling")
library("TeachingSampling")
Carregando pacotes exigidos: dplyr
Attaching package: ‘dplyr’
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
Carregando pacotes exigidos: magrittr
Amostra sistematica de tamanha 150, 10 grupos
amostra = S.SY(150, 10)
amostra
[,1]
[1,] 7
[2,] 17
[3,] 27
[4,] 37
[5,] 47
[6,] 57
[7,] 67
[8,] 77
[9,] 87
[10,] 97
[11,] 107
[12,] 117
[13,] 127
[14,] 137
[15,] 147
dim(amostra)
[1] 15 1
Usamos em iris
amostrairis=iris[amostra,]
amostrairis
Verificamos
Tamanho
dim(amostrairis)
[1] 15 5
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX AMOSTRAGEM ESTRATIFICADA: consiste em especificar quantos elementos da amostra serão retirados em cada estrato. É costume considerar três tipos de amostragem estratificada: uniforme, proporcional e ótima.
A estratificada uniforme, sorteia-se igual número de elementos em cada estrato. A amostra estratificada proporcional produz um erro amostral menor ou igual a amostra aleatória simples, é mais precisa. A igualdade ocorre quando as médias ou as proporções que estamos analisando são iguais em todos os níveis dos estratos. A amostragem estratificada ótima é sempre igual ou mais precisa que a amostra estratificada proporcional. Ambos os métodos são igualmente precisos quando os desvios-padrão são iguais dentro de cada camada, neste caso ambos os métodos são completamente equivalentes.
#install.packages("sampling")
library("sampling")
Proporção
#nesse método que usaremos ele nos dá a proporção de cada extrato. O iris tem 150 registros e 3 espécies, onde cada espécie está
#representada proporcionalmente - 50 registros de cada espécie.Portanto, aqui queremos gerar uma proporção de 25 de cada espécie
#então, teremos como resultado final um conjunto de dados com 75 registros. Nós poderíamos gerar este resultado mostrando uma
#amostragem simples, porém não teríamos a garantia de que haveria uma representatividade igual das classes(mesma proporção)
proporcao=25
Srswor amostra simples sem reposição, srswr com reposição, poisson, systematic; a ordem de size é que está no conjunto de dados
amostrairis2=strata(data=iris,stratanames=c("Species"),size=c(rep(proporcao,3)),method="srswor")
Error in strata(data = iris, stratanames = c("Species"), size = c(rep(proporcao, :
object 'proporcao' not found
summary(amostrairis2)
Species ID_unit Prob Stratum
setosa :25 Min. : 1.00 Min. :0.5 Min. :1
versicolor:25 1st Qu.: 37.50 1st Qu.:0.5 1st Qu.:1
virginica :25 Median : 77.00 Median :0.5 Median :2
Mean : 74.59 Mean :0.5 Mean :2
3rd Qu.:111.50 3rd Qu.:0.5 3rd Qu.:3
Max. :148.00 Max. :0.5 Max. :3
Dados de infertilidade
infert
summary(infert)
education age parity induced case spontaneous stratum pooled.stratum
0-5yrs : 12 Min. :21.00 Min. :1.000 Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. : 1.00 Min. : 1.00
6-11yrs:120 1st Qu.:28.00 1st Qu.:1.000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:21.00 1st Qu.:19.00
12+ yrs:116 Median :31.00 Median :2.000 Median :0.0000 Median :0.0000 Median :0.0000 Median :42.00 Median :36.00
Mean :31.50 Mean :2.093 Mean :0.5726 Mean :0.3347 Mean :0.5766 Mean :41.87 Mean :33.58
3rd Qu.:35.25 3rd Qu.:3.000 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:62.25 3rd Qu.:48.25
Max. :44.00 Max. :6.000 Max. :2.0000 Max. :1.0000 Max. :2.0000 Max. :83.00 Max. :63.00
Amostragem por estratos de education
amostra=strata(data=infert,stratanames=c("education"),size=c(5,48,47), method="srswor")
Resultado
amostra
summary(amostra)
education ID_unit Prob Stratum
0-5yrs : 5 Min. : 1.00 Min. :0.4000 Min. :1.00
6-11yrs:48 1st Qu.: 63.25 1st Qu.:0.4000 1st Qu.:2.00
12+ yrs:47 Median :131.00 Median :0.4052 Median :2.00
Mean :123.43 Mean :0.4033 Mean :2.42
3rd Qu.:175.75 3rd Qu.:0.4052 3rd Qu.:3.00
Max. :241.00 Max. :0.4167 Max. :3.00
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX MEDIDAS DE CENTRALIDADE E VARIABILIDADE: Dentre todas as informações, podemos retirar valores que representem, de algum modo, todo o conjunto. Esses valores são denominados “Medidas de Tendência Central ou Medidas de Centralidade”. As medidas de centralidade que apresentaremos são a Média Aritmética, a Moda e a Mediana.
Dados dos jogadores
jogadores = c(40000,18000,12000,250000,30000,140000,300000,40000,800000)
jogadores
[1] 40000 18000 12000 250000 30000 140000 300000 40000 800000
Média
mean(jogadores)
[1] 181111.1
Mediana (Não é afetada pelo valor do outlier)
median(jogadores)
[1] 40000
Quartis
quartis = quantile(jogadores)
quartis
0% 25% 50% 75% 100%
12000 30000 40000 250000 800000
boxplot(jogadores)
3º quartil
quartis[4]
75%
250000
Desvio padrão
sd(jogadores)
[1] 255307.9
Resumo
summary(jogadores)
Min. 1st Qu. Median Mean 3rd Qu. Max.
12000 30000 40000 181111 250000 800000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX TEOREMA CENTRAL DO LIMITE: O Teorema Central do Limite (TCL) afirma que a soma (S) de N variáveis aleatórias independentes (X), com qualquer distribuição e variâncias semelhantes, é uma variável com distribuição que se aproxima da distribuição de Gauss (distribuição normal) quando N aumenta. “Este teorema nos diz que se tivermos muitas variáveis aleatórias, mesmo que elas não sejam normalmente distribuidas sua média deverá ser proximo a uma distribuição normal.”
#omitir warnings
options(warn=-1)
#install.packages("semTools")
library(semTools)
Carregando pacotes exigidos: lavaan
This is lavaan 0.6-12
lavaan is FREE software! Please report any bugs.
###############################################################################
This is semTools 0.5-6
All users of R (or SEM) are invited to submit functions or ideas for functions.
###############################################################################
Inicializa um vetor
z = rep(0,500)
z
[1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[66] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[131] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[196] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[261] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[326] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[391] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[456] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Gera as amostras
for (i in 1:500) {
m = mvrnonnorm(1000, c(1, 2), matrix(c(10, 2, 2, 5), 2, 2),
skewness = c(5, 2), kurtosis = c(3, 3))
#grava a média da amostra
z[i] =mean(m)
#imprime as 3 primeiras
if (i<4){hist(m,breaks=50, main= paste0("Histrograma ", i ))}
}
Imprime a distribuição da média das amostras
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX TESTES DE NORMALIDADE: são baseados na função de distribuição empírica. O teste Ryan-Joiner (similar ao teste Shapiro-Wilk) é baseado em regressão e correlação. Todos os três testes tendem a funcionar bem na identificação de uma distribuição como não normal quando a distribuição é assimétrica. [Para testar dados que não estão normalmente distribu]
Repetir o experimento
set.seed(123)
Gera mil variáveis normalmente distribuidas
x = rnorm(1000)
x
Gráfico QQ
#rodar com Ctrl+shift+enter
qqnorm(x)
qqline(x)
hist(x)
Teste de Shapiro:tem como objetivo avaliar se uma distribuição é semelhante a uma distribuição normal. A distribuição normal também pode ser chamada de gaussiana e sua forma assemelha-se a de um sino. Esse tipo de distribuição é muito importante, por ser frequentemente usada para modelar fenômenos naturais.
Valor de p acima de 0,05, não há indício para a não confirmar a hipótese nula de dados normalmente distribuidos
shapiro.test(x)
Shapiro-Wilk normality test
data: x
W = 0.99838, p-value = 0.4765
Histograma com linha de densidade
#rodar com Ctrl+shift+enter
hist(x, main="")
par(new=TRUE)
plot(density(x),ylab = "", xlab = "", axes=F, lwd=2.5 )
Dados não normalmente distribuidos
#rodar com Ctrl+shift+enter
#install.packages("semTools")
library(semTools)
m = mvrnonnorm(1000, c(1, 2), matrix(c(10, 2, 2, 5), 2, 2),
skewness = c(5, 2), kurtosis = c(3, 3))
qqnorm(m)
qqline(m)
shapiro.test(m)
Shapiro-Wilk normality test
data: m
W = 0.8857, p-value < 2.2e-16
Dados que não lembram em nada uma distribuição normal
#rodar com Ctrl+shift+enter
hist(m, main="")
par(new=TRUE)
plot(density(m),ylab = "", xlab = "", axes=F, lwd=2.5 )
shapiro.test(m)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Pequenas e Grandes Amostras Espera-se uma média de 3,5.
Amostra pequena
x = sample(1:6,6,replace = T)
mean(x)
[1] 4
Amostra grande
x = sample(1:6,10000,replace = T)
mean(x)
[1] 3.4755
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX