A Pesquisa Nacional por Amostra de Domicílios - PNAD investiga anualmente, de forma permanente, características gerais da população, de educação, trabalho, rendimento e habitação e outras, com periodicidade variável, de acordo com as necessidades de informação para o país, como as características sobre migração, fecundidade, nupcialidade, saúde, segurança alimentar, entre outros temas. O levantamento dessas estatísticas constitui, ao longo dos 49 anos de realização da pesquisa, um importante instrumento para formulação, validação e avaliação de políticas orientadas para o desenvolvimento socioeconômico e a melhoria das condições de vida no Brasil.
Rendimento mensal do trabalho principal para pessoas de 10 anos ou mais de idade.
Idade do morador na data de referência em anos.
Altura do morador em metros.
| Código | Descrição |
|---|---|
| 11 | Rondônia |
| 12 | Acre |
| 13 | Amazonas |
| 14 | Roraima |
| 15 | Pará |
| 16 | Amapá |
| 17 | Tocantins |
| 21 | Maranhão |
| 22 | Piauí |
| 23 | Ceará |
| 24 | Rio Grande do Norte |
| 25 | Paraíba |
| 26 | Pernambuco |
| 27 | Alagoas |
| 28 | Sergipe |
| 29 | Bahia |
| 31 | Minas Gerais |
| 32 | Espírito Santo |
| 33 | Rio de Janeiro |
| 35 | São Paulo |
| 41 | Paraná |
| 42 | Santa Catarina |
| 43 | Rio Grande do Sul |
| 50 | Mato Grosso do Sul |
| 51 | Mato Grosso |
| 52 | Goiás |
| 53 | Distrito Federal |
| Código | Descrição |
|---|---|
| 0 | Masculino |
| 1 | Feminino |
| Código | Descrição |
|---|---|
| 1 | Sem instrução e menos de 1 ano |
| 2 | 1 ano |
| 3 | 2 anos |
| 4 | 3 anos |
| 5 | 4 anos |
| 6 | 5 anos |
| 7 | 6 anos |
| 8 | 7 anos |
| 9 | 8 anos |
| 10 | 9 anos |
| 11 | 10 anos |
| 12 | 11 anos |
| 13 | 12 anos |
| 14 | 13 anos |
| 15 | 14 anos |
| 16 | 15 anos ou mais |
| 17 | Não determinados |
| Não aplicável |
| Código | Descrição |
|---|---|
| 0 | Indígena |
| 2 | Branca |
| 4 | Preta |
| 6 | Amarela |
| 8 | Parda |
| 9 | Sem declaração |
Os seguintes tratamentos foram realizados nos dados originais:
library(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
library(ggplot2)
Confirgurando os gráficos:
options(repr.plot.width = 7, repr.plot.height = 4)
dados <- read.csv('dados.csv')
head(dados)
## UF Sexo Idade Cor Anos.de.Estudo Renda Altura
## 1 11 0 23 8 12 800 1.603808
## 2 11 1 23 2 12 1150 1.739790
## 3 11 1 35 8 15 880 1.760444
## 4 11 0 46 2 6 3500 1.783158
## 5 11 1 47 8 9 150 1.690631
## 6 11 1 34 8 12 790 1.637906
Verificando a quantidade de linhas no dataset
nrow(dados)
## [1] 76840
Testes estatísticos são regras de decisão que permitem avaliar a razoabilidade das hipóteses feitas sobre os parâmetros populacionais e aceitá-las ou rejeitá-las como provavelmente verdadeiras ou falsas tendo como base uma amostra.
A função shapiro.test testa a hipótese nula \(H_0\) de que a amostra é proveniente de uma distribuição normal, ou seja, os dados são normalmente distribuídos.
significancia <- 0.05
Vamos fazer o histograma da variável:
ggplot(dados, aes(x = Renda)) +
geom_histogram() +
ylab("Frequência") +
xlab("Renda") +
ggtitle('Histograma Renda') +
theme(plot.title=element_text(hjust = 0.5))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Ao observa-lo já podemos perceber que ele não é normal, ou seja, é assimétrica a direita. Vamos agora fazer o teste para validar esta informação.
Rejeitar \(H_0\) se o valor \(p\leq \alpha\)
Vamos primeiramente fazer uma amostra de nossos dados:
amostra <- sample_n(dados, 5000)
Agora vamos fazer o teste de shapiro na amostra.
resultado <- shapiro.test(amostra$Renda)
resultado
##
## Shapiro-Wilk normality test
##
## data: amostra$Renda
## W = 0.50382, p-value < 2.2e-16
Neste caso podemos identificar o p-valor e a estatística W. Vamos amarzenar o p-valor numa variável específica. A apresentação acima é um resultado padrão para valores muito pequenos
p_valor <- resultado$p.value
p_valor
## [1] 5.534473e-80
Também podemos visualizar separadamente a estatística do teste:
resultado$statistic
## W
## 0.5038198
Agora vamos verificar se o p-valor é menor que a significância:
p_valor <= significancia
## [1] TRUE
Como ele é menor, logo devemos rejeitar a hipótese nula de que os dados comportam-se como uma distribuição normal.
Agora vamos refazer o mesmo teste com a variável altura:
ggplot(dados, aes(x = Altura)) +
geom_histogram() +
ylab("Frequência") +
xlab("Altura") +
ggtitle('Histograma Altura') +
theme(plot.title=element_text(hjust = 0.5))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Veja que este já tem a aparência de uma distribuição normal, vamos apenas comprovar com o teste.
Rejeitar \(H_0\) se o valor \(p\leq \alpha\)
resultado <- shapiro.test(amostra$Altura)
resultado
##
## Shapiro-Wilk normality test
##
## data: amostra$Altura
## W = 0.99958, p-value = 0.3603
p_valor <- resultado$p.value
p_valor
## [1] 0.3603318
Comparando o p-valor com a significância
p_valor <= significancia
## [1] FALSE
Pontos importantes - De maneira geral, o alvo do estudo deve ser formulado como a hipótese alternativa \(H_1\). - A hipótese nula sempre afirma uma igualdade ou propriedade populacional, e \(H_1\) a desigualdade que nega \(H_0\). - No caso da hipótese nula \(H_0\) a igualdade pode ser representada por uma igualdade simples “\(=\)” ou por “\(\geq\)” e “\(\leq\)”. Sempre complementar ao estabelecido pela hipótese alternativa. - A hipótese alternativa \(H_1\) deve definir uma desigualdade que pode ser uma diferença simples “\(\neq\)” ou dos tipos “\(>\)” e “\(<\)”.
Pontos importantes - Quando o tamanho da amostra tiver 30 elementos ou mais, deve-se utilizar a distribuição normal, como estabelecido pelo teorema do limite central. - Para um tamanho de amostra menor que 30 elementos, e se pudermos afirmar que a população se distribui aproximadamente como uma normal e o desvio padrão populacional for conhecido, deve-se utilizar a distribuição normal. - Para um tamanho de amostra menor que 30 elementos, e se pudermos afirmar que a população se distribui aproximadamente como uma normal e o desvio padrão populacional for desconhecido, deve-se utilizar a distribuição t de Student.
Pontos importantes - O nível de confiança (\(1 - \alpha\)) representa a probabilidade de acerto da estimativa. De forma complementar o nível de significância (\(\alpha\)) expressa a probabilidade de erro da estimativa.
- O nível de confiança representa o grau de confiabilidade do resultado da estimativa estar dentro de determinado intervalo. Quando fixamos em uma pesquisa um nível de confiança de 95%, por exemplo, estamos assumindo que existe uma probabilidade de 95% dos resultados da pesquisa representarem bem a realidade, ou seja, estarem corretos.
Pontos importantes
- Nos testes paramétricos, distância relativa entre a estatística amostral e o valor alegado como provável.
- Neste passo são obtidas as estatísticas amostrais necessárias à execução do teste (média, desvio-padrão, graus de liberdade etc.)
Pontos importantes - No caso de o intervalo de aceitação conter a estatística-teste, aceita-se \(H_0\) como estatisticamente válido e rejeita-se \(H_1\) como tal. - No caso de o intervalo de aceitação não conter a estatística-teste, rejeita-se \(H_0\) e aceita-se \(H_1\) como provavelmente verdadeira. - A aceitação também se verifica com a probabilidade de cauda (p-valor): se maior que \(\alpha\), aceita-se \(H_0\).
- A hipótese nula sempre afirma uma igualdade ou propriedade populacional
v
- A hipótese alternativa sempre afirma uma igualdade ou propriedade populacional
f
- A hipótese nula pode ser representada pelo símbolos de maior ou igual (≥) e menor ou igual (≤)
v
- A hipótese alternativa pode ser representada pelo símbolos de maior (>) e menor (<)
v
Quando um teste assume determinadas premissas sobre como os parâmetros de uma população se distribuem, estamos trabalhando com Testes Paramétricos.
A empresa Suco Bom produz sucos de frutas em embalagens de 500 ml. Seu processo de produção é quase todo automatizado e as embalagens de sucos são preenchidas por uma máquina que às vezes apresenta um certo desajuste, levando a erros no preenchimento das embalagens para mais ou menos conteúdo. Quando o volume médio cai abaixo de 500 ml, a empresa se preocupa em perder vendas e ter problemas com os orgãos fiscalizadores. Quando o volume passa de 500 ml, a empresa começa a se preocupar com prejuízos no processo de produção.
O setor de controle de qualidade da empresa Suco Bom extrai, periodicamente, amostras de 50 embalagens para monitorar o processo de produção. Para cada amostra, é realizado um teste de hipóteses para avaliar se o maquinário se desajustou. A equipe de controle de qualidade assume um nível de significância de 5%.
Suponha agora que uma amostra de 50 embalagens foi selecionada e que a média amostral observada foi de 503,24 ml. Esse valor de média amostral é suficientemente maior que 500 ml para nos fazer rejeitar a hipótese de que a média do processo é de 500 ml ao nível de significância de 5%?
O teste bicaudal é muito utilizado em testes de qualidade, como o apresentado em nosso problema acima. Outro exemplo é a avaliação de peças que devem ter um encaixe perfeito (porcas e parafusos, chaves e fechaduras etc.).
Vamos construir a amostra:
amostra <- c(509, 505, 495, 510, 496, 509, 497, 502, 503, 505,
501, 505, 510, 505, 504, 497, 506, 506, 508, 505,
497, 504, 500, 498, 506, 496, 508, 497, 503, 501,
503, 506, 499, 498, 509, 507, 503, 499, 509, 495,
502, 505, 504, 509, 508, 501, 505, 497, 508, 507)
Vamos transformar a variável em um dataframe:
amostra <- data.frame(Amostra = amostra)
head(amostra)
## Amostra
## 1 509
## 2 505
## 3 495
## 4 510
## 5 496
## 6 509
Vamos agora calcular a média e o desvio padrão amostral:
media_amostra <- mean(amostra$Amostra)
desvio_padrao_amostra <- sd(amostra$Amostra)
sprintf('Média da amostra = %s e Desvio Padrão Amostral = %s ', media_amostra, desvio_padrao_amostra)
## [1] "Média da amostra = 503.24 e Desvio Padrão Amostral = 4.48380305052735 "
Inserindo os demais dados necessários ao problema, como média populacional , significância e confiança:
media <- 500
significancia <- 0.05
confianca <- 1-significancia
n <- 50
\(H_0: \mu = 500\)
\(H_1: \mu \neq 500\)
O tamanho da amostra é maior que 30?
Resp.: Sim
O desvio padrão populacional é conhecido?
Resp.: Não
z_alpha_2 <- qnorm(probabilidade)
z_alpha_2
## [1] 1.959964
\[z = \frac{\bar{x} - \mu_0}{\frac{s}{\sqrt{n}}}\]
z <- (media_amostra - media) / (desvio_padrao_amostra / sqrt(n))
z
## [1] 5.10956
Teste Bicaudal Rejeitar \(H_0\) se \(z \leq -z_{\alpha / 2}\) ou se \(z \geq z_{\alpha / 2}\)
Aplicando uma análise:
if(z <= -z_alpha_2 || z >= z_alpha_2){
'Rejeitar H0'
}else{
'Aceitar H0'
}
## [1] "Rejeitar H0"
Conclusão: Como a média amostral \(\bar{x}\) é significativamente maior que 500 ml, rejeitamos \(H_0\). Neste caso, devem ser tomadas providências para ajustar o maquinário que preenche as embalagens.
- Qual a hipótese nula a ser testada?
mediae <- 25
ne <- 45
media_amostrae <- 25.2
desvio_padraoe <- 0.4
significanciae <- 0.05
confiancae = 1-significanciae
# 1) Qual a hipótese nula a ser testada?
hipotesee <- 'H0: μ = 25'
hipotesee
## [1] "H0: μ = 25"
- Qual o valor da estatística de teste?
probabilidadee <- (0.5 + (confiancae / 2))
z_alpha_2e <- qnorm(probabilidadee)
# 2) Qual o valor da estatística de teste?
ze <- (media_amostrae - mediae) / (desvio_padraoe / sqrt(ne))
ze
## [1] 3.354102
- Qual a conclusão do teste?
# 3) Qual a conclusão do teste?
if (ze <= -z_alpha_2e || ze >= z_alpha_2e) {
'Rejeitar H0'
} else {
'Aceitar H0'
}
## [1] "Rejeitar H0"
Teste Bicaudal Rejeitar \(H_0\) se o valor \(p\leq\alpha\)
p_valor <- 2 * (1 - pnorm(z))
p_valor
## [1] 3.229103e-07
p_valor <= significancia
## [1] TRUE
Vamos carregar o pacote DescTools para uso:
library(DescTools)
Aplicando o Ztest:
ZTest(amostra$Amostra, mu = media, sd_pop = desvio_padrao_amostra)
##
## One Sample z-test
##
## data: amostra$Amostra
## z = 5.1096, Std. Dev. Population = 4.4838, p-value = 3.229e-07
## alternative hypothesis: true mean is not equal to 500
## 95 percent confidence interval:
## 501.9972 504.4828
## sample estimates:
## mean of x
## 503.24
Armazenando esse resultado numa variável:
resultado <- ZTest(amostra$Amostra, mu = media, sd_pop = desvio_padrao_amostra)
Verificando a Estatísticas:
resultado$statistic
## z
## 5.10956
Verificando o p-valor
p_valor <- resultado$p.value
p_valor
## [1] 3.229103e-07
Verificando se p-valor é menor que a significância:
p_valor <= significancia
## [1] TRUE
Como o resultado é verdadeiro, a hipótese nula é rejeitada e a vairação no peso das embalagens deve ser corrigida.
Com um nível de significância igual a 5%, teste a hipótese nula de que a média do processo é igual a 25 kg e selecione a alternativa que indica o p-valor do teste aplicado (considere somente 5 casas decimais).
Solução:
mediae <- 25
ne <- 45
media_amostrae <- 25.2
desvio_padraoe <- 0.4
# Estatística de teste
ze <- (media_amostrae - mediae) / (desvio_padraoe / sqrt(ne))
# p-valor
p_valore <- 2 * (1 - pnorm(ze))
p_valore
## [1] 0.0007962302
\(H0 : \mu = 22 \quad H1: \mu \not = 22\)
Uma amostra aleatória de tamanho 75 foi selecionada e se sabe que o desvio padrão da população é 10. Obtenha o p-valor e a sua conclusão para os dados amostrais abaixo:
mediae <- 22
ne <- 75
media_amostrae <- 25
desvio_padraoe <- 10
# Estatística de teste
ze <- (media_amostrae - mediae) / (desvio_padraoe / sqrt(ne))
# p-valor
p_valore <- 2 * (1 - pnorm(ze))
p_valore
## [1] 0.009374768
mediae <- 22
ne <- 75
media_amostrae <- 20
desvio_padraoe <- 10
# Estatística de teste
ze <- (media_amostrae - mediae) / (desvio_padraoe / sqrt(ne))
# p-valor
p_valore <- 2 * (1 - pnorm(ze))
p_valore
## [1] 1.916735
Considere um nível de significância de 1%.
Um famoso fabricante de refrigerantes alega que uma lata de 350 ml de seu principal produto contém, no máximo, 37 gramas de açúcar. Esta alegação nos leva a entender que a quantidade média de açúcar em uma lata de refrigerante deve ser igual ou menor que 37 g.
Um consumidor desconfiado e com conhecimentos em inferência estatística resolve testar a alegação do fabricante e seleciona, aleatóriamente, em um conjunto de estabelecimentos distintos, uma amostra de 25 latas do refrigerante em questão. Utilizando o equipamento correto o consumidor obteve as quantidades de açúcar em todas as 25 latas de sua amostra.
Assumindo que essa população se distribua aproximadamente como uma normal e considerando um nível de significância de 5%, é possível aceitar como válida a alegação do fabricante?
q <- seq(0.05, 0.005, by = -0.005)
df <- seq(1, 30, by = 1)
probabilidade <- c()
for(i in df){
for(j in q){
probabilidade <- c(probabilidade, qt(j, i, lower.tail = F))
}
}
tabela_t_student <- matrix(probabilidade, ncol=10, byrow=TRUE)
colnames(tabela_t_student) <- format(q)
rownames(tabela_t_student) <- format(df)
tabela_t_student
## 0.050 0.045 0.040 0.035 0.030 0.025 0.020 0.015
## 1 6.313752 7.026366 7.915815 9.057887 10.578895 12.706205 15.894545 21.204949
## 2 2.919986 3.103977 3.319764 3.578247 3.896425 4.302653 4.848732 5.642778
## 3 2.353363 2.470807 2.605427 2.762599 2.950510 3.182446 3.481909 3.896046
## 4 2.131847 2.226100 2.332873 2.455892 2.600762 2.776445 2.998528 3.297630
## 5 2.015048 2.097837 2.190958 2.297392 2.421585 2.570582 2.756509 3.002875
## 6 1.943180 2.019201 2.104306 2.201059 2.313263 2.446912 2.612242 2.828928
## 7 1.894579 1.966153 2.046011 2.136453 2.240879 2.364624 2.516752 2.714573
## 8 1.859548 1.927986 2.004152 2.090166 2.189155 2.306004 2.448985 2.633814
## 9 1.833113 1.899222 1.972653 2.055395 2.150375 2.262157 2.398441 2.573804
## 10 1.812461 1.876774 1.948099 2.028327 2.120234 2.228139 2.359315 2.527484
## 11 1.795885 1.858772 1.928427 2.006663 2.096139 2.200985 2.328140 2.490664
## 12 1.782288 1.844015 1.912313 1.988934 2.076441 2.178813 2.302722 2.460700
## 13 1.770933 1.831700 1.898874 1.974158 2.060038 2.160369 2.281604 2.435845
## 14 1.761310 1.821267 1.887496 1.961656 2.046169 2.144787 2.263781 2.414898
## 15 1.753050 1.812316 1.877739 1.950940 2.034289 2.131450 2.248540 2.397005
## 16 1.745884 1.804553 1.869279 1.941654 2.024000 2.119905 2.235358 2.381545
## 17 1.739607 1.797755 1.861875 1.933530 2.015002 2.109816 2.223845 2.368055
## 18 1.734064 1.791754 1.855340 1.926362 2.007067 2.100922 2.213703 2.356180
## 19 1.729133 1.786417 1.849530 1.919992 2.000017 2.093024 2.204701 2.345648
## 20 1.724718 1.781640 1.844331 1.914292 1.993713 2.085963 2.196658 2.336242
## 21 1.720743 1.777339 1.839651 1.909164 1.988041 2.079614 2.189427 2.327792
## 22 1.717144 1.773447 1.835417 1.904524 1.982911 2.073873 2.182893 2.320160
## 23 1.713872 1.769907 1.831567 1.900307 1.978249 2.068658 2.176958 2.313231
## 24 1.710882 1.766675 1.828051 1.896457 1.973994 2.063899 2.171545 2.306913
## 25 1.708141 1.763711 1.824828 1.892928 1.970095 2.059539 2.166587 2.301130
## 26 1.705618 1.760983 1.821863 1.889682 1.966509 2.055529 2.162029 2.295815
## 27 1.703288 1.758466 1.819126 1.886686 1.963200 2.051831 2.157825 2.290914
## 28 1.701131 1.756134 1.816592 1.883912 1.960136 2.048407 2.153935 2.286380
## 29 1.699127 1.753968 1.814238 1.881336 1.957293 2.045230 2.150325 2.282175
## 30 1.697261 1.751952 1.812047 1.878938 1.954645 2.042272 2.146966 2.278262
## 0.010 0.005
## 1 31.820516 63.656741
## 2 6.964557 9.924843
## 3 4.540703 5.840909
## 4 3.746947 4.604095
## 5 3.364930 4.032143
## 6 3.142668 3.707428
## 7 2.997952 3.499483
## 8 2.896459 3.355387
## 9 2.821438 3.249836
## 10 2.763769 3.169273
## 11 2.718079 3.105807
## 12 2.680998 3.054540
## 13 2.650309 3.012276
## 14 2.624494 2.976843
## 15 2.602480 2.946713
## 16 2.583487 2.920782
## 17 2.566934 2.898231
## 18 2.552380 2.878440
## 19 2.539483 2.860935
## 20 2.527977 2.845340
## 21 2.517648 2.831360
## 22 2.508325 2.818756
## 23 2.499867 2.807336
## 24 2.492159 2.796940
## 25 2.485107 2.787436
## 26 2.478630 2.778715
## 27 2.472660 2.770683
## 28 2.467140 2.763262
## 29 2.462021 2.756386
## 30 2.457262 2.749996
As células da tabela acima são valores de \(t\) para uma área ou probabilidade na cauda superior da distribuição \(t\).
Os testes unicaudais verificam as variáveis em relação a um piso ou a um teto e avaliam os valores máximos ou mínimos esperados para os parâmetros em estudo e a chance de as estatísticas amostrais serem inferiores ou superiores a dado limite.
- Para um teste unicaudal, com nível de significância de 5% e 11 registros, o valor de t seria igual a 1,81246
V
- Para um teste unicaudal, com nível de significância de 5% e 11 graus de liberdade, o valor de t seria igual a 1,81246
F
- Para um teste bicaudal, com nível de confiança de 99% e apenas 3 registros, o valor de t seria igual a 9,92484
V
- Para um teste bicaudal, com nível de significância de 6% e 5 graus de liberdade, o valor de t seria igual a 2,60076
F
Vamos construir o vetor da amostra
amostra <- c(37.27, 36.42, 34.84, 34.60, 37.49,
36.53, 35.49, 36.90, 34.52, 37.30,
34.99, 36.55, 36.29, 36.06, 37.42,
34.47, 36.70, 35.86, 36.80, 36.92,
37.04, 36.39, 37.32, 36.64, 35.45)
Vamos agora construir o dataframe da amostra
amostra <- data.frame(Amostra = amostra)
head(amostra)
## Amostra
## 1 37.27
## 2 36.42
## 3 34.84
## 4 34.60
## 5 37.49
## 6 36.53
Encontrando a média amostral:
media_amostra <- mean(amostra$Amostra)
media_amostra
## [1] 36.2504
Encontrando o desvio amostral:
desvio_padrao_amostra <- sd(amostra$Amostra)
desvio_padrao_amostra
## [1] 0.9667535
Inserindo os dados complementares fornecidos pelo problema:
media <- 37
significancia <- 0.05
confianca <- 1 - significancia
n <- 25
graus_de_liberdade <- n - 1
Lembre-se, a hipótese nula sempre contém a alegação de igualdade
\(H_0: \mu \leq 37\)
\(H_1: \mu > 37\)
O tamanho da amostra é maior que 30?
Resp.: Não
Podemos afirmar que a população se distribui aproximadamente como uma normal?
Resp.: Sim
O desvio padrão populacional é conhecido?
Resp.: Não
Vamos imprimir novamente a tabela só na parte que abriga os graus de liberdade do problema:
tabela_t_student[23:25, ]
## 0.050 0.045 0.040 0.035 0.030 0.025 0.020 0.015
## 23 1.713872 1.769907 1.831567 1.900307 1.978249 2.068658 2.176958 2.313231
## 24 1.710882 1.766675 1.828051 1.896457 1.973994 2.063899 2.171545 2.306913
## 25 1.708141 1.763711 1.824828 1.892928 1.970095 2.059539 2.166587 2.301130
## 0.010 0.005
## 23 2.499867 2.807336
## 24 2.492159 2.796940
## 25 2.485107 2.787436
t_alpha <- qt(confianca, graus_de_liberdade)
t_alpha
## [1] 1.710882
\[t = \frac{\bar{x} - \mu_0}{\frac{s}{\sqrt{n}}}\]
t <- (media_amostra - media) / (desvio_padrao_amostra / sqrt(n))
t
## [1] -3.876893
Teste Unicaudal Superior
Rejeitar \(H_0\) se \(t \geq t_{\alpha}\)
t >= t_alpha
## [1] FALSE
Conclusão: Com um nível de confiança de 95% não podemos rejeitar \(H_0\), ou seja, a alegação do fabricante é verdadeira.
Selecione a alternativa que apresenta a estatística de teste e a decisão correta do teste.
Solução:
media <- 150
n <- 20
graus_de_liberdade <- n - 1
media_amostra <- 230
desvio_padrao <- 90
significancia <- 0.05
confianca <- 1 - significancia
t_alpha <- qt(confianca, graus_de_liberdade)
t <- (media_amostra - media) / (desvio_padrao / sqrt(n))
t
## [1] 3.975232
Selecione a alternativa que apresenta a estatística de teste e a decisão correta do teste.
Solução
media <- 350
n <- 35
media_amostra <- 330
desvio_padrao <- 80
significancia <- 0.05
confianca <- 1 - significancia
z_alpha <- qnorm(confianca)
z <- (media_amostra - media) / (desvio_padrao / sqrt(n))
z
## [1] -1.47902
Teste Unicaudal Superior Rejeitar \(H_0\) se o valor \(p\leq\alpha\)
if (z <= -z_alpha) {
'Rejeitar H0'
} else {
'Aceitar H0'
}
## [1] "Aceitar H0"
Vamos entender o comportamento do teste nestes casos observando as figuras abaixo:
# Reicerindo os dados para evitar sujeira de memõria
media_amostra <- mean(amostra$Amostra)
media <- 37
significancia <- 0.05
confianca <- 1 - significancia
n <- 25
graus_de_liberdade <- n - 1
t_alpha <- qt(confianca, graus_de_liberdade)
t <- (media_amostra - media) / (desvio_padrao_amostra / sqrt(n))
p_valor <- pt(t, graus_de_liberdade, lower.tail = F)
p_valor
## [1] 0.9996406
Agora vamos ver o teste pela função reservada do R:
resultado <- t.test(amostra$Amostra, alternative = "greater", mu = media)
resultado
##
## One Sample t-test
##
## data: amostra$Amostra
## t = -3.8769, df = 24, p-value = 0.9996
## alternative hypothesis: true mean is greater than 37
## 95 percent confidence interval:
## 35.9196 Inf
## sample estimates:
## mean of x
## 36.2504
Veja que temos todas as informações nesta estatística do teste t. Podemos também separar cada uma das métricas:
Estatística de teste
resultado$statistic
## t
## -3.876893
P-valor
p_valor <- resultado$p.value
p_valor
## [1] 0.9996406
Análise, Rejeitar \(H_0\)?:
resultado$p.value <= significancia
## [1] FALSE
- Média amostral igual a 82
- Média amostral igual a 70
Considere um nível de confiança de 95%.
Solução:
media <- 75
n <- 23
graus_de_liberdade <- n - 1
desvio_padrao <- 12
significancia <- 0.05
# 1) Média amostral = 82
t <- (82 - media) / (desvio_padrao / sqrt(n))
p_valor <- pt(t, graus_de_liberdade, lower.tail = T)
p_valor
## [1] 0.9947533
if (p_valor <= significancia) {
'Rejeitar H0'
} else {
'Aceitar H0'
}
## [1] "Aceitar H0"
# 2) Média amostral = 70
t <- (70 - media) / (desvio_padrao / sqrt(n))
p_valor <- pt(t, graus_de_liberdade, lower.tail = T)
p_valor
## [1] 0.02909833
if (p_valor <= significancia) {
'Rejeitar H0'
} else {
'Aceitar H0'
}
## [1] "Rejeitar H0"
vendas <- c(32.45, 26.8, 27.81, 30.22, 30.88, 24.9, 31.94, 16.02,
24.39, 26.01, 21.83, 25.35, 22.46, 38.2, 29.86, 22.79, 28.83, 27.34, 32.22, 33.26)
dataset <- data.frame(Amostra = vendas)
Sabe-se que as vendas são normalmente distribuídas. Obtenha o valor da estatística de teste, o \(p-valor\) e a decisão para o teste. Assuma um nível de significância de 5%.
Solução:
media <- 32
resultado <- t.test(dataset$Amostra, alternative = "two.sided", mu = media)
t <- resultado$statistic
t
## t
## -3.865303
p_valor <- resultado$p.value
p_valor
## [1] 0.001042208
if (p_valor <= significancia) {
'Rejeitar H0'
} else {
'Aceitar H0'
}
## [1] "Rejeitar H0"
Em nosso dataset temos os rendimento dos chefes de domicílio obtidos da Pesquisa Nacional por Amostra de Domicílios - PNAD no ano de 2015. Um problema bastante conhecido em nosso país diz respeito a desigualdade de renda, principalmente entre homens e mulheres.
Duas amostras aleatórias, uma de 500 homens e outra com 500 mulheres, foram selecionadas em nosso dataset. Com o objetivo de comprovar tal desigualdade, teste a igualdade das médias entre estas duas amostras com um nível de significância de 1%.
É possível também utilizar testes de hipóteses para comparar duas diferentes amostras. Neste tipo de teste se deseja decidir se uma amostra é diferente da outra.
homens <- matrix(c(300, 1000, 4000, 5000, 300, 350, 1200, 1200, 1100, 1800, 700, 5000, 250, 1560, 400, 5500, 3000, 0, 1100, 1500, 500, 500, 788, 500, 3000, 788, 2400, 788, 3300, 1350, 2500, 2000, 1300, 2430, 9000, 10120, 1380, 2000, 1400, 1000, 500, 1500, 2200, 2100, 4000, 1000, 1200, 2900, 1800, 2000, 788, 1576, 800, 2400, 788, 788, 788, 0, 12000, 7880, 850, 1000, 1000, 1600, 3800, 788, 1200, 300, 350, 700, 6000, 1500, 5000, 2000, 1200, 800, 250, 800, 1600, 400, 3000, 2304, 800, 1400, 450, 788, 2200, 6000, 1200, 4000, 6000, 1100, 1200, 1300, 3000, 3000, 1500, 1280, 788, 1400, 788, 4000, 0, 1000, 2500, 1300, 3000, 500, 1600, 2000, 1280, 150, 0, 0, 7000, 1061, 700, 788, 2000, 788, 10500, 788, 1600, 1050, 1100, 3000, 800, 1400, 1200, 2500, 1000, 1500, 1500, 900, 2000, 300, 3000, 788, 1400, 2000, 2000, 3000, 2600, 15000, 1500, 950, 1200, 1500, 7500, 1400, 350, 750, 1200, 788, 0, 2500, 1700, 788, 700, 1600, 1200, 320, 6000, 2000, 2000, 3000, 900, 2100, 0, 788, 1800, 1600, 4000, 1300, 1300, 1500, 8900, 1400, 788, 600, 1000, 950, 2000, 4000, 2300, 2000, 800, 2500, 1500, 1400, 800, 6000, 788, 900, 200, 1300, 788, 2600, 1500, 8000, 900, 2000, 2000, 350, 3000, 9580, 0, 400, 800, 1700, 1800, 1200, 18000, 9000, 3000, 1200, 700, 1200, 400, 987, 6000, 2000, 0, 0, 480, 500, 800, 1680, 10000, 1200, 1700, 788, 2200, 10000, 10000, 100, 1200, 1600, 2500, 1300, 1200, 1300, 2200, 200, 60, 1100, 1200, 6000, 4500, 100, 788, 2900, 2500, 900, 788, 2500, 4000, 788, 1400, 1000, 300, 788, 1000, 4000, 2200, 788, 1000, 1000, 600, 1600, 6000, 2500, 2500, 1000, 3000, 2200, 4500, 1500, 4300, 1500, 8500, 3200, 1200, 1200, 1500, 4000, 2000, 1350, 1500, 890, 5000, 2400, 13000, 800, 1500, 1500, 2000, 580, 500, 920, 1200, 2000, 788, 500, 20000, 1350, 1576, 500, 8000, 1800, 600, 1000, 3000, 4000, 1500, 788, 600, 2300, 1500, 500, 500, 800, 900, 8000, 1600, 3000, 788, 1500, 5200, 900, 3565, 650, 1700, 1600, 788, 1200, 788, 788, 100, 900, 1700, 10000, 1600, 200, 788, 1400, 1500, 400, 4200, 1400, 4000, 5516, 3500, 700, 1400, 1200, 0, 7000, 2000, 5000, 2000, 750, 3000, 2000, 1500, 200, 3000, 1700, 1500, 7000, 1500, 788, 2400, 2500, 1500, 2000, 1500, 2000, 1100, 800, 1800, 480, 3500, 700, 3400, 5000, 5000, 1300, 3000, 2000, 900, 2000, 1000, 1800, 0, 1500, 788, 3500, 875, 5000, 2000, 1300, 1600, 0, 750, 1200, 120, 1800, 1200, 788, 1000, 0, 1400, 2300, 7000, 4000, 5000, 788, 20000, 4000, 0, 1200, 1800, 500, 1000, 788, 1300, 5000, 50, 1700, 2000, 1600, 2000, 1350, 1500, 600, 1700, 780, 2446, 2100, 5000, 1700, 1200, 1000, 788, 4500, 1500, 788, 0, 1580, 1000, 4500, 2400, 788, 1100, 2000, 788, 100, 1200, 1200, 1200, 1000, 2000, 788, 2000, 15000, 600, 0, 1500, 3000, 4000, 900, 810, 600, 1500, 4000, 1200, 5000, 5300, 2500, 800, 0, 1400, 1500, 4000, 1200, 400, 1000, 820, 1000, 1000, 788, 1500, 2500, 1500, 220, 600, 788, 1750, 7000))
mulheres <- matrix(c(788, 1200, 6000, 1000, 788, 1100, 1900, 1577, 900, 950, 1200, 788, 788, 1100, 30, 620, 900, 1000, 1200, 2000, 0, 500, 1200, 1500, 1200, 1120, 788, 788, 2300, 2400, 3000, 788, 4000, 1000, 500, 500, 1700, 200, 6000, 400, 950, 1100, 50, 930, 850, 1100, 3500, 1500, 1200, 900, 1100, 1500, 788, 1000, 788, 4500, 4000, 8000, 3500, 788, 1050, 1000, 1400, 3500, 600, 3000, 500, 930, 2660, 788, 360, 2364, 788, 160, 1100, 1085, 1050, 1500, 100, 0, 788, 250, 1700, 1300, 800, 0, 2000, 820, 910, 300, 2000, 200, 788, 788, 800, 1500, 1300, 1200, 0, 600, 1036, 400, 1100, 788, 400, 1500, 1200, 1800, 1000, 788, 850, 60, 1800, 3500, 600, 200, 500, 200, 1100, 1540, 1100, 900, 800, 500, 200, 1200, 1250, 788, 500, 200, 788, 200, 0, 1800, 2000, 1000, 900, 3000, 700, 1200, 788, 2800, 3300, 400, 0, 850, 1022, 6000, 750, 1000, 3500, 400, 1500, 1000, 800, 0, 980, 2400, 850, 1100, 788, 1100, 788, 1200, 788, 864, 1000, 500, 400, 3000, 1200, 100, 80, 900, 2000, 1250, 1000, 300, 400, 1500, 60, 8000, 1000, 600, 800, 350, 788, 0, 600, 788, 2500, 1300, 800, 8000, 1100, 800, 900, 2000, 0, 800, 1400, 1000, 1200, 788, 3840, 788, 3940, 788, 560, 800, 2000, 600, 2900, 0, 400, 800, 7000, 788, 788, 788, 788, 1250, 1500, 1386, 100, 300, 788, 788, 600, 600, 900, 2800, 788, 350, 900, 0, 150, 788, 788, 1000, 30, 788, 780, 900, 0, 0, 3000, 1800, 2000, 1100, 788, 0, 7500, 1800, 788, 788, 2000, 3000, 180, 2500, 800, 0, 1250, 200, 1100, 0, 1100, 400, 1300, 300, 0, 1312, 600, 200, 4000, 2400, 12000, 2150, 500, 400, 0, 600, 400, 788, 1200, 500, 2000, 1500, 70, 500, 2000, 1000, 100, 500, 2000, 100, 2115, 800, 5800, 2300, 750, 788, 0, 900, 1000, 600, 3000, 5500, 1600, 788, 4000, 0, 1100, 120, 320, 1100, 2500, 200, 800, 3000, 550, 4200, 7000, 720, 0, 2000, 5000, 2000, 788, 500, 788, 7000, 500, 788, 1760, 1200, 3500, 1500, 150, 800, 788, 3000, 400, 788, 1000, 2000, 2500, 0, 788, 5200, 788, 0, 600, 1300, 120, 850, 1576, 788, 2000, 1300, 788, 800, 1800, 655, 1580, 789, 788, 850, 788, 7000, 788, 430, 800, 788, 900, 10000, 1200, 300, 400, 788, 788, 3000, 900, 1300, 1300, 788, 800, 1000, 1890, 0, 788, 900, 4000, 788, 1010, 150, 450, 1700, 890, 1200, 2800, 1000, 788, 788, 700, 600, 800, 880, 6000, 800, 800, 820, 788, 1030, 560, 2100, 6500, 2500, 788, 400, 300, 788, 2300, 1000, 3500, 984, 1576, 420, 1700, 450, 1800, 400, 1500, 1500, 4256, 1200, 890, 1200, 300, 400, 850, 1500, 3800, 1800, 996, 2000, 1000, 788, 1500, 300, 600, 950, 1200, 788, 1200, 1500, 250, 788, 1200, 6000, 300, 789, 1500, 788, 3800, 780, 1200, 1200, 220, 788, 500, 200, 480, 1576, 1576, 1035, 900, 800, 1000, 805, 200, 1200, 2220, 1500, 880, 220, 2000, 788, 150, 0, 13000, 40, 5500, 788, 788, 1000, 400, 2000, 200, 1600))
Média amostral das mulheres:
media_amostra_M <- mean(mulheres)
media_amostra_M
## [1] 1357.528
Desvio padrão amostral das mulheres:
desvio_padrao_amostra_M <- sd(mulheres)
desvio_padrao_amostra_M
## [1] 1569.901
Média amostral dos homens:
media_amostra_H <- mean(homens)
media_amostra_H
## [1] 2142.608
Desvio padrão amostral dos homens:
desvio_padrao_amostra_H <- sd(homens)
desvio_padrao_amostra_H
## [1] 2548.051
Demais dados necessários contidos no problema:
significancia <- 0.01
confianca <- 1 - significancia
n_M <- 500
n_H <- 500
D_0 <- 0
Lembre-se, a hipótese nula sempre contém a alegação de igualdade
\(\begin{cases} H_0: \mu_1 \leq \mu_2\\ H_1: \mu_1 > \mu_2 \end{cases}\)
ou
\(\begin{cases} H_0: \mu_1 -\mu_2 \leq 0\\ H_1: \mu_1 -\mu_2 > 0 \end{cases}\)
Observação importante
Em testes que envolvam duas amostras com o emprego da tabela \(t\) de Student, o número de graus de liberdade será sempre igual a \(n_1 + n_2 - 2\)
O tamanho da amostra é maior que 30?
Resp.: Sim
O desvio padrão populacional é conhecido?
Resp.: Não
Calculando a probabilidade do teste:
probabilidade <- confianca
probabilidade
## [1] 0.99
Encontrando o valor de \(\alpha\)
z_alpha <- qnorm(probabilidade)
z_alpha
## [1] 2.326348
\[z = \dfrac{(\bar{x_1} - \bar{x_2})-D_0}{\sqrt{\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}}}\]
Fazendo o cálculo do teste \(z\)
numerador <- (media_amostra_H - media_amostra_M) - D_0
denominador <- sqrt((desvio_padrao_amostra_H ** 2 / n_H) + (desvio_padrao_amostra_M ** 2 / n_M))
z <- numerador / denominador
z
## [1] 5.86562
Teste Unicaudal
Rejeitar \(H_0\) se \(z \geq z_{\alpha}\)
Comparando os testes:
z >= z_alpha
## [1] TRUE
Conclusão: Com um nível de confiança de 99% rejeitamos \(H_0\), isto é, concluímos que a média das rendas dos chefes de domicílios do sexo masculino é maior que a média das rendas das chefes de domicílios do sexo feminino. Confirmando a alegação de desigualdade de renda entre os sexos.
Indique a alternativa que apresenta a estatística de teste e a conclusão do teste.
Solução:
media_sala_A <- 5.3
desvio_padrao_sala_A <- 2.1
media_sala_B <- 7.6
desvio_padrao_sala_B <- 2.8
significanciae <- 0.05
confiancae <- 1 - significanciae
n_sala_A <- 50
n_sala_B <- 55
D_0 <- 0
probabilidadee <- 0.5 + (confiancae / 2)
z_alpha_2e <- qnorm(probabilidadee)
numeradore <- (media_sala_A - media_sala_B) - D_0
denominadore <- sqrt((desvio_padrao_sala_A ** 2 / n_sala_A) + (desvio_padrao_sala_B ** 2 / n_sala_B))
ze <- numeradore / denominadore
ze
## [1] -4.788078
if (ze <= -z_alpha_2e || ze >= z_alpha_2e) {
'Rejeitar H0'
} else {
'Aceitar H0'
}
## [1] "Rejeitar H0"
| Bairro | Média (R$ por \(m^2\)) | Desvio Padrão (R$ por \(m^2\)) |
|---|---|---|
| Leblon | 21800 | 450 |
| Ipanema | 20300 | 320 |
É possível concordar com a afirmação da imobiliária? Assuma um nível de significância de 5% e populações normalmente distribuídas. Indique a alternativa que apresenta a estatística de teste e a conclusão do teste.
Um pouco mais de teoria: Como se trata de um problema um pouco diferente do apresentado no último tópico, vamos esclarecer alguns pontos para ajudar na solução:
Em testes entre duas amostras, quando realizamos a escolha da distribuição amostral adequada (passo 2) e perguntamos se n ≥ 30, temos que considerar que n = n1 + n2, onde n1 é o tamanho da primeira amostra e n2 o tamanho da segunda
Quando \(n1 + n2 \geq 30\), utilizamos \(z\) (normal) e quando \(n1 + n2 < 30\), \(σ\) não for conhecido e as populações forem normalmente distribuídas, utilizamos t (t-Student)
Quando utilizamos a tabela t de Student, em testes de duas amostras, os graus de liberdade são obtidos da seguinte forma: \(n1 + n2 – 2\)
Solução:
media_Leblon <- 21800
desvio_padrao_Leblon <- 450
media_Ipanema <- 20300
desvio_padrao_Ipanema <- 320
significancia <- 0.05
confianca <- 1 - significancia
n_Leblon <- 13
n_Ipanema <- 13
D_0e <- 1000
t_alpha <- qt(confianca, n_Leblon + n_Ipanema - 2)
numerador <- (media_Leblon - media_Ipanema) - D_0e
denominador <- sqrt((desvio_padrao_Leblon ** 2 / n_Leblon) + (desvio_padrao_Ipanema ** 2 / n_Ipanema))
t <- numerador / denominador
t
## [1] 3.264848
if (t >= t_alpha) {
'Rejeitar H0'
} else {
'Aceitar H0'
}
## [1] "Rejeitar H0"
Teste Unicaudal
Rejeitar \(H_0\) se o valor \(p\leq\alpha\)
Verificando o valor de \(z\)
z
## [1] 5.86562
Encontrando o p_valor
p_valor <- pnorm(z, lower.tail = F)
p_valor
## [1] 2.237287e-09
Comparando os dois:
p_valor <= significancia
## [1] TRUE
Chegamos a mesma conclusão apresentada anteriormente.
##install.packages("BSDA")
# OU
##packageurl <- "https://cran.r-project.org/src/contrib/Archive/BSDA/BSDA_1.01.tar.gz"
##install.packages(packageurl, repos=NULL, type="source")
library(BSDA)
## Loading required package: e1071
## Loading required package: lattice
##
## Attaching package: 'BSDA'
## The following object is masked from 'package:datasets':
##
## Orange
aplicando o teste:
resultado <- z.test(x = homens,
y = mulheres,
alternative = 'greater',
mu = 0,
sigma.x = sd(homens),
sigma.y = sd(mulheres),
conf.level = 0.99)
resultado
##
## Two-sample z-Test
##
## data: homens and mulheres
## z = 5.8656, p-value = 2.237e-09
## alternative hypothesis: true difference in means is greater than 0
## 99 percent confidence interval:
## 473.7115 NA
## sample estimates:
## mean of x mean of y
## 2142.608 1357.528
Veja que o resultado já traz todas as métricas, inclusive a hipóstese alternativa a ser considerada.
Extraindo p-valor:
p_valor <- resultado$p.value
p_valor
## [1] 2.237287e-09
Comparando as métricas:
p_valor <= significancia
## [1] TRUE
Chega-se ao mesmo resultado.
t.test()
resultado <- t.test(x = homens,
y = mulheres,
alternative = 'greater',
paired = F,
var.equal = T)
resultado
##
## Two Sample t-test
##
## data: homens and mulheres
## t = 5.8656, df = 998, p-value = 3.04e-09
## alternative hypothesis: true difference in means is greater than 0
## 95 percent confidence interval:
## 564.7211 Inf
## sample estimates:
## mean of x mean of y
## 2142.608 1357.528
Veja que conseguimos resultados semelhantes.
Fazendo a comparação final:
p_valor <- resultado$p.value
p_valor <= significancia
## [1] TRUE
Podemos observar que quanto maior for o numero das amostras, o teste t se aproxima dos valores do teste z.
\(H_0 = \mu_A - \mu_B \geq 23\)
\(H_1 = \mu_A - \mu_B < 23\)
Solução: \[\begin{eqnarray} z.test&(&x = A,\\ &&y = B,\\ &&alternative = "less",\\ &&mu = 23,\\ &&sigma.x = sd(A),\\ &&sigma.y = sd(B),\\ &&conf.level = 0.99) \end{eqnarray}\]
\(H_0 = \mu_A - \mu_B \geq 23\)
\(H_1 = \mu_A - \mu_B < 23\)
Solução:
\[\begin{eqnarray} t.test&(&x = A,\\ &&y = B,\\ &&mu = 23,\\ &&alternative = 'less',\\ &&paired = F,\\ &&var.equal = T,\\ &&conf.level = 0.99) \end{eqnarray}\]
O trabalho com pequenas amostras pode levar a não aceitação da validade do teorema central do limite e também na impossibilidade de fazer suposições sobre a distribuição da variável avaliada. Quando isso ocorre torna-se necessária a aplicação de testes não paramétricos. Nos testes não paramétricos, não fazemos hipóteses sobre a distribuição (de probabilidade) das quais as observações são extraídas.
Antes de cada partida do campeonato nacional de futebol, as moedas utilizadas pelos árbitros devem ser verificadas para se ter certeza de que não são viciadas, ou seja, que não tendam para determinado resultado. Para isso um teste simples deve ser realizado antes de cada partida. Este teste consiste em lançar a moeda do jogo 50 vezes e contar as frequências de CARAS e COROAS obtidas. A tabela abaixo mostra o resultado obtido no experimento:
| CARA | COROA | |
|---|---|---|
| Observado | 17 | 33 |
| Esperado | 25 | 25 |
A um nível de significância de 5%, é possível afirmar que a moeda não é honesta, isto é, que a moeda apresenta uma probabilidade maior de cair com a face CARA voltada para cima?
Também conhecido como teste de adequação ao ajustamento, seu nome se deve ao fato de utilizar uma variável estatística padronizada, representada pela letra grega qui ( \(\chi\)) elevada ao quadrado. A tabela com os valores padronizados e como obtê-la podem ser vistos logo abaixo.
O teste do \(\chi^2\) testa a hipótese nula de não haver diferença entre as frequências observadas de um determinado evento e as frequências que são realmente esperadas para este evento.
Os passos de aplicação do teste são bem parecidos aos vistos para os testes paramétricos.
p <- c(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 0.75, 0.9, 0.975, 0.95, 0.99, 0.995)
df <- seq(1, 30, by = 1)
probabilidade <- c()
for(i in df){
for(j in p){
probabilidade <- c(probabilidade, round(qchisq(j, i, lower.tail = T), 4))
}
}
tabela_chi_2 <- matrix(probabilidade, ncol=13, byrow=TRUE)
colnames(tabela_chi_2) <- format(p)
rownames(tabela_chi_2) <- format(df)
tabela_chi_2
## 0.005 0.010 0.025 0.050 0.100 0.250 0.500 0.750 0.900
## 1 0.0000 0.0002 0.0010 0.0039 0.0158 0.1015 0.4549 1.3233 2.7055
## 2 0.0100 0.0201 0.0506 0.1026 0.2107 0.5754 1.3863 2.7726 4.6052
## 3 0.0717 0.1148 0.2158 0.3518 0.5844 1.2125 2.3660 4.1083 6.2514
## 4 0.2070 0.2971 0.4844 0.7107 1.0636 1.9226 3.3567 5.3853 7.7794
## 5 0.4117 0.5543 0.8312 1.1455 1.6103 2.6746 4.3515 6.6257 9.2364
## 6 0.6757 0.8721 1.2373 1.6354 2.2041 3.4546 5.3481 7.8408 10.6446
## 7 0.9893 1.2390 1.6899 2.1673 2.8331 4.2549 6.3458 9.0371 12.0170
## 8 1.3444 1.6465 2.1797 2.7326 3.4895 5.0706 7.3441 10.2189 13.3616
## 9 1.7349 2.0879 2.7004 3.3251 4.1682 5.8988 8.3428 11.3888 14.6837
## 10 2.1559 2.5582 3.2470 3.9403 4.8652 6.7372 9.3418 12.5489 15.9872
## 11 2.6032 3.0535 3.8157 4.5748 5.5778 7.5841 10.3410 13.7007 17.2750
## 12 3.0738 3.5706 4.4038 5.2260 6.3038 8.4384 11.3403 14.8454 18.5493
## 13 3.5650 4.1069 5.0088 5.8919 7.0415 9.2991 12.3398 15.9839 19.8119
## 14 4.0747 4.6604 5.6287 6.5706 7.7895 10.1653 13.3393 17.1169 21.0641
## 15 4.6009 5.2293 6.2621 7.2609 8.5468 11.0365 14.3389 18.2451 22.3071
## 16 5.1422 5.8122 6.9077 7.9616 9.3122 11.9122 15.3385 19.3689 23.5418
## 17 5.6972 6.4078 7.5642 8.6718 10.0852 12.7919 16.3382 20.4887 24.7690
## 18 6.2648 7.0149 8.2307 9.3905 10.8649 13.6753 17.3379 21.6049 25.9894
## 19 6.8440 7.6327 8.9065 10.1170 11.6509 14.5620 18.3377 22.7178 27.2036
## 20 7.4338 8.2604 9.5908 10.8508 12.4426 15.4518 19.3374 23.8277 28.4120
## 21 8.0337 8.8972 10.2829 11.5913 13.2396 16.3444 20.3372 24.9348 29.6151
## 22 8.6427 9.5425 10.9823 12.3380 14.0415 17.2396 21.3370 26.0393 30.8133
## 23 9.2604 10.1957 11.6886 13.0905 14.8480 18.1373 22.3369 27.1413 32.0069
## 24 9.8862 10.8564 12.4012 13.8484 15.6587 19.0373 23.3367 28.2412 33.1962
## 25 10.5197 11.5240 13.1197 14.6114 16.4734 19.9393 24.3366 29.3389 34.3816
## 26 11.1602 12.1981 13.8439 15.3792 17.2919 20.8434 25.3365 30.4346 35.5632
## 27 11.8076 12.8785 14.5734 16.1514 18.1139 21.7494 26.3363 31.5284 36.7412
## 28 12.4613 13.5647 15.3079 16.9279 18.9392 22.6572 27.3362 32.6205 37.9159
## 29 13.1211 14.2565 16.0471 17.7084 19.7677 23.5666 28.3361 33.7109 39.0875
## 30 13.7867 14.9535 16.7908 18.4927 20.5992 24.4776 29.3360 34.7997 40.2560
## 0.975 0.950 0.990 0.995
## 1 5.0239 3.8415 6.6349 7.8794
## 2 7.3778 5.9915 9.2103 10.5966
## 3 9.3484 7.8147 11.3449 12.8382
## 4 11.1433 9.4877 13.2767 14.8603
## 5 12.8325 11.0705 15.0863 16.7496
## 6 14.4494 12.5916 16.8119 18.5476
## 7 16.0128 14.0671 18.4753 20.2777
## 8 17.5345 15.5073 20.0902 21.9550
## 9 19.0228 16.9190 21.6660 23.5894
## 10 20.4832 18.3070 23.2093 25.1882
## 11 21.9200 19.6751 24.7250 26.7568
## 12 23.3367 21.0261 26.2170 28.2995
## 13 24.7356 22.3620 27.6882 29.8195
## 14 26.1189 23.6848 29.1412 31.3193
## 15 27.4884 24.9958 30.5779 32.8013
## 16 28.8454 26.2962 31.9999 34.2672
## 17 30.1910 27.5871 33.4087 35.7185
## 18 31.5264 28.8693 34.8053 37.1565
## 19 32.8523 30.1435 36.1909 38.5823
## 20 34.1696 31.4104 37.5662 39.9968
## 21 35.4789 32.6706 38.9322 41.4011
## 22 36.7807 33.9244 40.2894 42.7957
## 23 38.0756 35.1725 41.6384 44.1813
## 24 39.3641 36.4150 42.9798 45.5585
## 25 40.6465 37.6525 44.3141 46.9279
## 26 41.9232 38.8851 45.6417 48.2899
## 27 43.1945 40.1133 46.9629 49.6449
## 28 44.4608 41.3371 48.2782 50.9934
## 29 45.7223 42.5570 49.5879 52.3356
## 30 46.9792 43.7730 50.8922 53.6720
Tabela com os valores de \(\chi_p^2\) em função dos graus de liberdade \((n - 1)\) e de \(p = P(\chi^2 \leq \chi_p^2)\)
- Para um teste com nível de confiança de 99% e apenas 5 registros, o valor de x² seria igual a 0,2971
- Para um teste com nível de significância de 5% e 11 registros, o valor de x² seria igual a 18,3070
- Para um teste com nível de significância de 5% e 11 graus de liberdade, o valor de x² seria igual a 18,3070
- Para um teste com nível de confiança de 1% e 5 graus de liberdade o valor de x² seria igual a 0,5543
Antes de cada partida do campeonato nacional de futebol, as moedas utilizadas pelos árbitros devem ser verificadas para se ter certeza de que não são viciadas, ou seja, que não tendam para determinado resultado. Para isso um teste simples deve ser realizado antes de cada partida. Este teste consiste em lançar a moeda do jogo 50 vezes e contar as frequências de CARAS e COROAS obtidas. A tabela abaixo mostra o resultado obtido no experimento:
| CARA | COROA | |
|---|---|---|
| Observado | 17 | 33 |
| Esperado | 25 | 25 |
A um nível de significância de 5%, é possível afirmar que a moeda não é honesta, isto é, que a moeda apresenta uma probabilidade maior de cair com a face CARA voltada para cima?
Lembre-se, a hipótese nula sempre contém a alegação de igualdade
\(H_0: F_{CARA} = F_{COROA}\)
\(H_1: F_{CARA} \neq F_{COROA}\)
\[\chi^2 = \sum_{i=1}^{k}{\frac{(F_{i}^{Obs} - F_{i}^{Esp})^2}{F_{i}^{Esp}}}\]
Onde
\(F_{i}^{Obs}\) = frequência observada para o evento \(i\)
\(F_{i}^{Esp}\) = frequência esperada para o evento \(i\)
\(k\) = total de eventos possíveis
Agora vamos encontrar o valor de quiquadrado:
Vamos criar um laço for para automatizar a soma das parcelas:
Veja o resultado dentro da região de probabilidade:
Percebe-se imediatamente que o resultado está dentro da área de rejeição da hipótese nula.
Rejeitar \(H_0\) se \(\chi_{teste}^2 > \chi_{\alpha}^2\)
Conclusão: Com um nível de confiança de 95% rejeitamos a hipótese nula (\(H_0\)) e concluímos que as frequências observadas e esperadas são discrepantes, ou seja, a moeda não é honesta e precisa ser substituída.
O teste não paramétrico do Qui-quadrado é também conhecido como teste de adequação do ajustamento
O teste do Qui-quadrado testa a hipótese nula de não haver diferença entre as frequências observadas de um determinado evento e as frequências que são realmente esperadas para este evento
Há alguma afirmativa correta? Se sim, qual(is)?
| Resultados | Frequências Observadas |
|---|---|
| 2 Caras | 12 |
| 1 Cara e 1 Coroa | 34 |
| 2 Caroas | 14 |
| Total | 60 |
Considerando um nível de significância de 5%, seria possível dizer que as moedas estão bem equilibradas, ou seja, que apresentam probabilidades iguais de se obter CARA ou COROA?
Selecione a alternativa que apresenta a decisão correta e a estatística de teste.
Rejeitar \(H_0\) se o valor \(p\leq\alpha\)
Voltando a estatística de teste:
Encontrando o p-valor
Já podemos deduzir que devemos é menor que nossa significância e devemos rejeitar a hipótese nula.
Vamos agora fazer com uma função pronta do R:
Como nos testes anteriores, temos as estatísticas de teste que nos mostram todas as informações. e conseguimos verificar pelo valor de p_value que temos que rejeitar a hipótese nula.
Podemos também encontrar situações onde a probabilidade esperada não seja a mesma para as parcelas, como no caso acima que era de 50% para as duas. O teste sempre irá considerar uma divisão igualitária pra as observações, assim, caso tenha uma situação de valor esperado divergente, é importante informar isso ao teste.
Vamos calcular a mesma situação informando o valor esperado em percentual:
Solução:
| Resultados | Frequências Observadas |
|---|---|
| 2 Caras | 12 |
| 1 Cara e 1 Coroa | 34 |
| 2 Caroas | 14 |
| Total | 60 |
Considerando um nível de significância de 5%, seria possível dizer que as moedas estão bem equilibradas, ou seja, que apresentam probabilidades iguais de se obter CARA ou COROA?
Selecione a alternativa que apresenta a forma correta de se resolver este problema utilizando a função chisq.test() do R.
Solução:
Um novo tratamento para acabar com o hábito de fumar está sendo empregado em um grupo de 35 pacientes voluntários. De cada paciente testado foram obtidas as informações de quantidades de cigarros consumidos por dia antes e depois do término do tratamento. Assumindo um nível de confiança de 95% é possível concluir que, depois da aplicação do novo tratamento, houve uma mudança no hábito de fumar do grupo de pacientes testado?
Empregado quando se deseja comparar duas amostras relacionadas, amostras emparelhadas. Pode ser aplicado quando se deseja testar a diferença de duas condições, isto é, quando um mesmo elemento é submetido a duas medidas.
fumo <- data.frame(
Antes = c(39, 25, 24, 50, 13, 52, 21, 29, 10, 22, 50, 15, 36, 39, 52, 48, 24, 15, 40, 41, 17, 12, 21, 49, 14, 55, 46, 22, 28, 23, 37, 17, 31, 49, 49),
Depois = c(16, 8, 12, 0, 14, 16, 13, 12, 19, 17, 17, 2, 15, 10, 20, 13, 0, 4, 16, 18, 16, 16, 9, 9, 18, 4, 17, 0, 11, 14, 0, 19, 2, 9, 6)
)
significancia <- 0.05
confianca <- 1 - significancia
n <- 35
Vamos verificar o cabeçalho de nosso dataframe
Vamos comparar as médias de antes e depois.
Antes:
Depois:
Lembre-se, a hipótese nula sempre contém a alegação de igualdade
\(H_0: \mu_{antes} = \mu_{depois}\)
\(H_1: \mu_{antes} > \mu_{depois}\)
O tamanho da amostra é maior que 30?
Resp.: Sim
Obtendo \(z_{\alpha/2}\)
\[Z = \frac{T - \mu_T}{\sigma_T}\]
Onde
Termos \(T\) = menor das somas de postos de mesmo sinal
\[\mu_T = \frac{n(n+1)}{4}\] \[\sigma_T = \sqrt{\frac{n(n + 1)(2n + 1)}{24}}\]
Calculando a Diferença:
Fazendo o módulo da diferença:
Ordenando pela diferença
Criando a coluna posto:
Criando a df posto agregando a coluna posto pela média:
Removendo a coluna posto em df fumo:
Juntando as duas df´s:
Criando a coluna posto +:
Criando a Coluna posto -:
Removendo a coluna posto:
Onde \(T\) = menor das somas de postos de mesmo sinal
\[\mu_T = \frac{n(n+1)}{4}\]
\[\sigma_T = \sqrt{\frac{n(n + 1)(2n + 1)}{24}}\]
\[Z = \frac{T - \mu_T}{\sigma_T}\]
Rejeitar \(H_0\) se \(Z \leq -z_{\alpha / 2}\) ou se \(Z \geq z_{\alpha / 2}\)
Pela esquerda
Pela direita:
Conclusão: Rejeitamos a hipótese de que não existe diferença entre os grupos, isto é, existe uma diferença entre as médias de cigarros fumados pelos pacientes antes e depois do tratamento. E como é possível verificar através das médias de cigarros fumados por dia antes (31.86) e depois (11.2) do tratamento, podemos concluir que o tratamento apresentou resultado satisfatório.
- O teste de Wilcoxon é aplicado quando se deseja comparar duas amostras relacionadas, amostras emparelhadas
- O teste de Wilcoxon pode ser aplicado quando se deseja testar a diferença de duas condições, isto é, quando um mesmo elemento é submetido a duas medidas
Há alguma afirmativa correta? Se sim, qual(is)?
alunos <- data.frame(
Sem_Apoio = c(4, 3, 5, 4, 8, 6, 5, 7, 6, 7, 8, 7, 3, 7, 4, 7, 5, 7, 5, 7, 6, 4, 3, 3, 6, 3, 7, 4, 6, 6),
Com_Apoio = c(8, 6, 10, 3, 9, 5, 8, 5, 4, 10, 5, 9, 8, 5, 10, 8, 7, 9, 9, 5, 5, 7, 8, 9, 8, 5, 5, 8, 5, 9)
)
Apresente o resultado do teste não paramétrico de Wilcoxon aplicado pelo professor (menor das somas de postos de mesmo sinal T, estatística de teste Z e decisão do teste). Considere um nível de significância de 10%.
Solução:
alunos <- data.frame(
Sem_Apoio = c(4, 3, 5, 4, 8, 6, 5, 7, 6, 7, 8, 7, 3, 7, 4, 7, 5, 7, 5, 7, 6, 4, 3, 3, 6, 3, 7, 4, 6, 6),
Com_Apoio = c(8, 6, 10, 3, 9, 5, 8, 5, 4, 10, 5, 9, 8, 5, 10, 8, 7, 9, 9, 5, 5, 7, 8, 9, 8, 5, 5, 8, 5, 9)
)
significancia <- 0.1
confianca <- 1 - significancia
n <- 30
probabilidade <- (0.5 + (confianca / 2))
z_alpha_2 <- qnorm(probabilidade)
alunos['Dif'] <- alunos$Com_Apoio - alunos$Sem_Apoio
alunos['|Dif|'] <- abs(alunos['Dif'])
alunos <- alunos[order(alunos$'|Dif|'),]
alunos['Posto'] <- seq(1, nrow(alunos))
posto <- aggregate(x = alunos$'Posto', by = list('|Dif|' = alunos$'|Dif|'), FUN = mean)
colnames(posto) <- c('|Dif|', 'Posto')
alunos$Posto <- NULL
alunos <- merge(x = alunos, y = posto, by = '|Dif|', all.x = TRUE)
alunos['Posto (+)'] <- apply(alunos[, c('Dif', 'Posto')], 1, function(x) if(x[1] > 0) x[2] else 0)
alunos['Posto (-)'] <- apply(alunos[, c('Dif', 'Posto')], 1, function(x) if(x[1] < 0) x[2] else 0)
alunos$Posto <- NULL
T <- min(sum(alunos['Posto (+)']), sum(alunos['Posto (-)']))
T
## [1] 91
mu_T <- (n * (n + 1)) / 4
sigma_T <- sqrt((n * (n + 1) * ((2 * n) + 1)) / 24)
Z <- (T - mu_T) / sigma_T
Z
## [1] -2.91042
if (Z <= -z_alpha_2 || Z >= z_alpha_2) {
'Rejeitar H0'
} else {
'Aceitar H0'
}
## [1] "Rejeitar H0"
Rejeitar \(H_0\) se o valor \(p\leq\alpha\)
Veja que o p-valor é muito pequeno, menor que a significância e assim rejeitamos a hipótese nula, adotando a alternativa proposta por ele. “alternative hypothesis: true location shift is not equal to 0”
Os dados de variação de peso de cada suíno testado estão no data frame abaixo (em gramas):
DataFrame
pesos <- data.frame(
Sem_Composto = c(180, -39, 325, 303, 127, 149, 271, 163, 287, 255, 398, 324, 335, 421,
216, 274, 373, 116, 197, -37, 321, 431, 112, 304, 417, 362, 51, 187, 195, 304, 202, 158, 105, 90, 245),
Com_Composto = c(484, 187, 442, 108, 488, 283, 286, 419, 240, 266, 198, 130, 484, 424,
145, 133, 282, 386, 408, 290, 429, 386, 318, 390, 347, 442, 440, 356, 517, 454, 401, 108, 228, 471, 495)
)
Selecione a alternativa que apresenta o p-valor e a decisão correta do teste de Wilcoxon sobre a diferença entre as médias sem e com o composto na ração. Utilize a função wilcox.test() do R e considere um nível de significância de 5%.
Assim, finalizamos esse nosso capítulo sobre os testes estatísticos.
BENGFORT, B.; KIM, J. Análise de dados com Hadoop: Uma introdução para Cientista de Dados. 1ª Edição. São Paulo - SP: Novatec, 2016.
BRUCE, P.; BRUCE, A. Estatística para Cientista de Dados: 50 conceitos iniciais. 1ª Edição. Rio de Janeiro - RJ: Alta Books, 2019.
DIAS, Rodrigo fernando. Estaística com R. Alura. 2022. disponível em: https://cursos.alura.com.br/course/estatistica-r-frequencias-medidas
GOLDSCHMIDT, R.; PASSOS, E.; BEZERRA, E. Data Mining: Conceitos, técnicas, orientações e aplicações. 2ª Edição. Rio de Janeiro - RJ: ELSEVIER, 2015.
HADLEY, W.; GARRETT, G. R para Data Science: Importe, arrume, transforme, visualize e modele dados. 1ª Edição. Rio de Janeiro - RJ: Alta Books, 2019.
MUELLER, J. P.; MASSARON, L. Aprendizado de Máquina para leigos. 1ª Edição. Rio de Janeiro - RJ: Alta Books, 2019.
OLIVEIRA, Francisco Estevam Martins de. Estatistica e Probabilidade - Exercicios Resolvidos e Propostos, 3ª edição. [Digite o Local da Editora]: Grupo GEN, 2017. E-book. ISBN 9788521633846. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9788521633846/. Acesso em: 06 abr. 2023.
ROSS, Sheldon. Probabilidade. [Digite o Local da Editora]: Grupo A, 2010. E-book. ISBN 9788577806881. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9788577806881/. Acesso em: 06 abr. 2023.
UCS - Universidade Caxias do Sul. Big Data: o que é, para que serve, como aplicar e exemplos. Disponível em: https://ead.ucs.br/blog/big-data Acesso em: 12, setembro de 2022.
TAULLI, T. Introdução à Inteligência Artificial: Uma abordagem não técnica. 1ª Edição. São Paulo - SP: Novatec, 2020.