R
PARA INTERVALOS DE CONFIANÇA E TESTES DE HIPÓTESES (1 E 2
POPULAÇÕES)
Para esta quinta aula prática de Estatística Computacional I, precisaremos dos seguintes pacotes:
require(ggplot2) # Abordagem gráfica
require(qqplotr) # Gráfico qqplot
require(DescTools) # Teste da variância
Até aqui, nosso foco esteve em construir a inferência
estatística para uma única população, usando simulações
detalhadas no R para compreender profundamente
como surgem:
Esse estudo computacional foi essencial para que vocês dominassem os conceitos, observassem empiricamente o Teorema Central do Limite e enxergassem como a variabilidade amostral fundamenta toda a inferência.
Além disso, a lógica construída para uma população se estende naturalmente para o caso de duas populações: se simulássemos novamente, veríamos praticamente os mesmos fenômenos — distribuição de estatísticas de diferença, comportamento sob \(H_0\), efeitos do tamanho amostral, erros tipo I e II, e o papel central do TCL. Ou seja, a extrapolação das simulações para duas populações é muito similar e, conceitualmente, nada realmente novo surgiria nesse processo.
A partir deste ponto, iniciamos uma nova etapa: usar as
funções prontas do R para realizar inferência estatística.
Nesta fase, não vamos reconstruir todas as simulações
novamente. Em vez disso, vamos aprender como o R
implementa, de forma direta e eficiente, os principais
procedimentos inferenciais.
Com as simulações que realizamos nas aulas passadas, essa
base conceitual permite compreender muito melhor o que cada
função do R está fazendo, de onde vêm os números e
como interpretar seus resultados.
O foco dessa prática será, portanto:
Diagnósticos de normalidade: Antes de aplicar testes paramétricos baseados na normalidade, vamos estudar o Teste de Shapiro Wilk e gráficos para detectar normalidade.
Inferência para uma e duas populações:
Sistematizar as funções prontas do R para
construir intervalos de confiança e testes
sobre média, proporção e variância para uma e duas
populações.
Antes de avançarmos para a aplicação das funções
prontas do R em testes e intervalos de confiança,
é importante revisitar um ponto essencial na prática
inferencial: a verificação da normalidade.
Muitos procedimentos paramétricos — como o teste t, teste pra variância
e ANOVA — assumem que a(s) população(ões) segue(m) uma
distribuição aproximadamente normal.
Nas simulações que realizamos na primeira parte do curso, vocês viram que, graças ao Teorema Central do Limite, a normalidade da estatística (como a média amostral) tende a emergir naturalmente quando o tamanho amostral é moderado ou grande, mesmo quando a população original não é normal.
É muito importante não confundir isso com a ideia de que “amostras grandes são normais” — o que se torna aproximadamente normal é a distribuição da média amostral, não os dados em si. A população e a amostra podem continuar fortemente assimétricas, mesmo com tamanho grande.
Contudo, para amostras pequenas ou situações com forte assimetria, pode ser útil avaliar empiricamente se a suposição de normalidade é plausível.
Vamos trabalhar com ferramentas como o teste de Shapiro-Wilk, além de gráficos como densidades e QQ-plots. Assim, vocês terão um conjunto completo de instrumentos para analisar a normalidade antes de aplicar os testes paramétricos nas próximas seções.
Imagine que uma equipe da área de ergonomia está avaliando o tempo de reação de trabalhadores que operam um novo painel de controle industrial. O equipamento ainda está em fase piloto e, por isso, apenas 22 trabalhadores participaram do teste inicial. Os tempos de reação (em milissegundos) são os seguintes:
Tempos <- c(
242, 255, 248, 251, 239, 246, 244, 257, 252, 260,
241, 249, 245, 243, 254, 247, 250, 259, 263, 272,
285, 301
)
Dados <- data.frame(Tempos = Tempos)
Nesse contexto, estamos diante de uma situação típica na prática profissional: uma amostra pequena (n < 30). Ou seja, é justamente aquele cenário limite em que decidir se a normalidade pode ou não ser assumida se torna relevante para a escolha entre métodos paramétricos ou não paramétricos.
O primeiro passo para avaliar a forma da distribuição é visualizar
seus contornos. O gráfico de densidade permite enxergar
rapidamente assimetrias, caudas mais pesadas e possíveis desvios sutis
da normalidade. Ele é construído suavizando os dados por meio de
uma função kernel, resultando em uma curva contínua que
aproxima a distribuição dos valores observados. No
R este gráfico é feito com a função
geom_density do pacote ggplot2:
ggplot(Dados, aes(x = Tempos)) +
geom_density(fill="blue") +
xlab("Tempos") +
ylab("Densidade") +
theme_bw() +
theme(text = element_text(size = 14))
Note como os dados são fortemente assimétricos à direito, indo contra uma situação de normalidade dos dados.
Pode acontecer de mesmo quando o gráfico de densidade apresenta assimetria aparente, isso não impede que os dados sejam considerados aproximadamente normais. O QQ-plot pode acusar a normalidade dos dados e testes formais, como o Shapiro–Wilk, podem não rejeitar a normalidade. Isso ocorre porque pequenas assimetrias visuais nem sempre são suficientes para indicar desvios estatisticamente significativos da distribuição normal.
O gráfico quantil-quantil (Q-Q plot) é uma ferramenta visual que compara a distribuição dos dados com uma distribuição teórica, geralmente a normal. Ele faz isso confrontando os quantis da amostra com os quantis da distribuição escolhida.
O Q-Q plot é útil para diagnosticar rapidamente padrões de
desvio e orientar a escolha dos testes estatísticos. No R, com
o ggplot2 e o pacote qqplotr, podemos
construir um Q-Q plot completo usando três funções:
stat_qq_point(): plota os pontos da comparação
entre quantis.stat_qq_line(): adiciona a linha teórica de
referência.stat_qq_band(): cria bandas de
confiança, destacando desvios mais
relevantes.Segue o código que executa este gráfico ao nosso exemplo:
ggplot(Dados, aes(sample=Tempos)) +
stat_qq_band(fill="lightblue") +
stat_qq_line() +
stat_qq_point() +
xlab("Quantis Teoricos")+
ylab("Quantis Amostrais")+
theme_bw() +
theme(text = element_text(size = 14))
Note que, como a cauda à direita da distribuição é mais pesada os pontos finais no gráfico q-q plot se encontram fora da banda de confiança, reforçando a não normalidade dos dados.
O teste de Shapiro-Wilk é um dos métodos mais utilizados para avaliar a normalidade de uma amostra, especialmente quando o tamanho amostral é pequeno ou moderado. Ele costuma ser mais poderoso que outros testes — como Kolmogorov-Smirnov — porque é mais sensível a desvios sutis da normalidade, sem exigir que os parâmetros da distribuição normal sejam conhecidos.
As hipóteses do teste são
O teste compara os valores observados com os valores esperados de uma amostra normal ordenada. A estatística de Shapiro-Wilk é, essencialmente, uma razão entre:
Valores próximos de 1 indicam boa aderência à normalidade; valores menores indicam afastamento. Para concluir sobre o teste note que:
No R, este teste é feito a partir da função
shapiro.test da base do
R, que recebe como argumento os dados
observados. Vamos aplicar essa função ao nosso
exemplo:
shapiro.test(Dados$Tempos)
##
## Shapiro-Wilk normality test
##
## data: Dados$Tempos
## W = 0.81249, p-value = 0.0007899
Note que a saída dessa função apresenta dois resultados:
W: Estatísica de teste. Quanto mais
próxima de 1, maior a tendência para a normalidade dos dados.p-valor: P-valor do teste
realizado.Como o p-valor é menor que 0.05, rejeitamos a hipótese nula e há evidências de que os dados não são normais. Nesse caso, não podemos realizar nenhum teste paramétrico aqui para inferir sobre parâmetros populacionais. A alternativa é recorrer à estatística não paramétrica para que seja feita a inferência nesses parâmetros.
Imagine que um laboratório de ciências do esporte está avaliando o tempo de recuperação cardíaca (em segundos) de atletas amadores após um teste de esforço leve. Como o estudo ainda está em fase preliminar, apenas 28 voluntários participaram.
A seguir estão os dados coletados (em segundos):
Tempos <- c(
52, 49, 55, 50, 53, 47, 51, 56, 54, 58,
48, 52, 50, 49, 57, 55, 53, 60, 62, 65,
59, 61, 64, 68, 70, 72, 58, 56
)
Dados <- data.frame(Tempos = Tempos)
Verifique se há indícios, a um nível de 5% de significância, que os dados são normalmente distribuídos.
Este é o caso mais simples do ponto de vista teórico: quando a(s) população(ões) é(são) normal(is) e a(s) variância(s) é(são) conhecida(s), a estatística de teste e os intervalos de confiança utilizam a distribuição Normal padrão (Z). Esse cenário aparece com frequência nos livros-texto porque permite introduzir conceitos fundamentais de forma algebricamente limpa.
Além disso, esse caso é excelente para fins didáticos, especialmente para simulações computacionais. Por ser um contexto totalmente controlado (normalidade perfeita e variância fixa), ele é ideal para observar empiricamente como a distribuição da média, dos estimadores e das estatísticas de teste se comporta — exatamente como fizemos no início da disciplina. É um ambiente “de laboratório”, onde tudo pode ser verificado com precisão.
Na prática aplicada, porém, populações com variância conhecida quase nunca existem. Mesmo com grande quantidade de dados históricos, a variabilidade real da população continua sendo estimada, e não conhecida. Por isso, esse caso é essencialmente teórico e tem utilidade limitada na análise estatística real. Assim, na prática, tratá-lo separadamente não acrescenta ganhos concretos para a análise de dados aplicada. Por esses motivos, NÃO ABORDAREMOS ESTE CASO AQUI.
As situações em que trabalhamos com proporções são extremamente comuns na prática estatística: porcentagem de indivíduos vacinados, proporção de peças defeituosas, taxa de aprovação, prevalência de uma doença, entre muitas outras. Em todos esses casos, cada observação pode ser representada como um sucesso (1) ou fracasso (0), isto é, como uma variável Bernoulli.
A partir deste ponto, organizaremos o estudo em duas partes fundamentais:
Proporções em uma população
Intervalos de confiança e testes de hipótese para o parâmetro \(p\).
Proporções em duas populações
Inferência para a diferença \(p_1 -
p_2\), incluindo intervalos e testes de hipóteses.
Sabemos que o Teorema Central do Limite garante a
normalidade aproximada de \(\hat{p}\)
(ou da diferença \(\hat{p}_1 -
\hat{p}_2\)), quando certas condições são
atendidas. O R implementa esses procedimentos
automaticamente via funções como prop.test.
A função prop.test() é utilizada para realizar o
intervalo de confiança e o teste de hipótese para:
Os argumentos da função prop.test()
são:
x = número de sucessos observados na
amostra. Pode ser um único valor (uma população) ou um vetor com dois
valores (duas populações);n = tamanho da amostra correspondente
a x. Pode ser um único valor (uma população) ou um vetor
com dois valores (duas populações);alternative = hipótese alternativa:
"greater" para testes unilaterais à direita,
"less" para testes unilaterais à esquerda e
"two.sided" para testes bilaterais;p = valor da proporção sob a hipótese
nula (um valor para uma população ou a diferença de proporções
para duas populações, sendo geralmente 0);conf.level = nível de confiança
(consequentemente, é estabelecido o nível de significância).correct = um valor lógico que indica se a
correção de continuidade será utilizada ou nao.As saídas da função prop.test()
são:
statistic: a estatística de teste X
(equivalente a estatística \(Z^2\));p.value: valor-p do teste;conf.int: intervalo de confiança para
a proporção ou para a diferença de proporções. Se a hipótese
alternativa for diferente da bilateral, será feito um intervalo
unilateral;estimate: proporção amostral (ou
proporções amostrais, se duas populações);null.value: valor sob a hipótese
nula;alternative: hipótese
alternativa.Para retornar o intervalo de confiança somente,
basta fazer prop.test(…)$conf.int.
Quando trabalhamos com proporções em uma única população, nosso objetivo é realizar inferência sobre o parâmetro \(p\), que representa a verdadeira proporção de sucessos na população. Construiremos:
A lógica da inferência é inteiramente baseada na variabilidade natural da proporção amostral \(\hat{p}\), que surge porque estamos observando apenas uma amostra da população. Por isso, compreender a distribuição de \(\hat{p}\) é fundamental para aplicar corretamente os métodos inferenciais.
Antes, porém, precisamos garantir que certas suposições mínimas são atendidas.
Para utilizar a aproximação Normal e aplicar os intervalos e testes clássicos para uma proporção, assumimos que:
Uma “regra de bolso” muito utilizada é verificar se \(n\hat{p}\geq10\) e \(n(1-\hat{p})\geq10\)
Imagine que uma equipe de saúde ocupacional está conduzindo um estudo preliminar sobre uso correto de equipamentos de proteção individual (EPIs) em um setor de manutenção industrial. O objetivo é estimar a proporção de trabalhadores que utilizam corretamente o capacete de segurança durante toda a jornada de trabalho.
Como o estudo ainda está em fase piloto, apenas 50 trabalhadores foram observados ao longo de um turno. Para cada trabalhador, o observador registrou:
Os dados coletados foram os seguintes:
UsoCapacete <- c(
1,1,1,1,0,1,1,1,1,0,
1,1,0,1,1,1,0,1,1,0,
1,0,1,0,1,1,1,1,1,1,
0,1,1,1,1,0,1,1,1,0,
0,1,1,1,1,0,1,1,1,0
)
Dados = data.frame(UsoCapacete = UsoCapacete)
n = length(Dados$UsoCapacete)
Sucessos = sum(Dados$UsoCapacete)
p_hat = mean(Dados$UsoCapacete)
Considere o objetivo de construir intervalos de confiança e fazer testes de hipótese para o parâmetro populacional \(p\), a verdadeira proporção de trabalhadores que utilizam corretamente o capacete de segurança.
Para uma única proporção populacional \(p\), queremos construir um intervalo de confiança (IC) que quantifique a incerteza da estimativa amostral \(\hat{p}\).
O IC clássico para a proporção populacional é dado por:
\[ \hat{p} \pm z_{\alpha/2} \sqrt{\frac{\hat{p}(1 - \hat{p})}{n}} \]
A função prop.test não usa o IC
clássico, e sim o intervalo de score de
Wilson, que apresenta melhor desempenho, especialmente
em amostras pequenas ou proporções extremas.
A fórmula utilizada é:
\[ \tilde{p} = \frac{\hat{p} + \frac{z^2}{2n}}{1 + \frac{z^2}{n}} \]
\[ \text{Erro} = \frac{z}{1 + \frac{z^2}{n}} \sqrt{\frac{\hat{p}(1-\hat{p})}{n} + \frac{z^2}{4n^2}} \]
O intervalo de confiança é dado por:
\[ (\tilde{p} - \text{Erro},\; \tilde{p} + \text{Erro}) \]
Quando correct = TRUE, o R aplica a correção de
continuidade de Yates, que consiste em subtrair 1/2 do
valor absoluto da diferença entre o número de sucessos observados e o
esperado no cálculo do intervalo de escore:
Esse ajuste torna o intervalo mais conservador. A correção é útil quando:
Vamos aplicar a função para o cálculo do intervalo de confiança na nossa situação prática. Como temos um \(\hat{p}\) não extremo e um tamanho de amostra razoável, não vamos aplicar a correção. Os comandos são:
# Intervalo de confiança bilateral
prop.test(x=Sucessos,
n=n,
conf.level = 0.95,
correct = F)$conf.int
## [1] 0.6044684 0.8412847
## attr(,"conf.level")
## [1] 0.95
# Intervalo de confiança unilateral à esquerda
prop.test(x=Sucessos,
n=n,
conf.level = 0.95,
correct = F,
alternative = "less")$conf.int
## [1] 0.0000000 0.8278214
## attr(,"conf.level")
## [1] 0.95
# Intervalo de confiança unilateral à direita
prop.test(x=Sucessos,
n=n,
conf.level = 0.95,
correct = F,
alternative = "greater")$conf.int
## [1] 0.6275387 1.0000000
## attr(,"conf.level")
## [1] 0.95
As saídas apresentam o intervalo e o nível de confiança.
Para uma única proporção populacional \(p\), podemos testar hipóteses do tipo:
\[ H_0: p = p_0 \quad \text{vs} \quad H_1: p \neq p_0, \ p > p_0 \text{ ou } p < p_0 \]
onde \(p_0\) é a proporção de referência ou meta da população.
Quando \(n\) é suficientemente grande, podemos usar a aproximação normal para a estatística de teste da proporção:
\[ Z = \frac{\hat{p} - p_0}{\sqrt{\frac{p_0(1-p_0)}{n}}} \]
O valor de \(Z\) é então comparado com a distribuição normal padrão para obter o p-valor.
A função prop.test realiza o teste de hipótese para
proporções usando o teste de escore, que é equivalente
à \(Z^2\), que tem uma distribuição
\(\chi^2_1\). Quando
correct = TRUE, o termo \(-0.5\) é acrescido na estatística de
teste.
prop.test aplica a correção de
continuidade de Yates (correct = TRUE), tornando o
teste mais conservador.correct = FALSE.Vamos testar se a proporção de uso correto de capacete (\(\hat{p}\)) difere de uma meta \(p_0 = 0.70\). Pelos mesmos motivos de antes, não usaremos correação aqui também. Seguem os comandos:
# Teste bilateral
prop.test(x=Sucessos,
n=n,
p = 0.70,
alternative = "two.sided",
correct = F)
##
## 1-sample proportions test without continuity correction
##
## data: Sucessos out of n, null probability 0.7
## X-squared = 0.38095, df = 1, p-value = 0.5371
## alternative hypothesis: true p is not equal to 0.7
## 95 percent confidence interval:
## 0.6044684 0.8412847
## sample estimates:
## p
## 0.74
# Teste unilateral à esquerda (p < p0)
prop.test(x=Sucessos,
n=n,
p = 0.70,
alternative = "less",
correct = F)
##
## 1-sample proportions test without continuity correction
##
## data: Sucessos out of n, null probability 0.7
## X-squared = 0.38095, df = 1, p-value = 0.7315
## alternative hypothesis: true p is less than 0.7
## 95 percent confidence interval:
## 0.0000000 0.8278214
## sample estimates:
## p
## 0.74
# Teste unilateral à direita (p > p0)
prop.test(x=Sucessos,
n=n,
p = 0.70,
alternative = "greater",
correct = F)
##
## 1-sample proportions test without continuity correction
##
## data: Sucessos out of n, null probability 0.7
## X-squared = 0.38095, df = 1, p-value = 0.2685
## alternative hypothesis: true p is greater than 0.7
## 95 percent confidence interval:
## 0.6275387 1.0000000
## sample estimates:
## p
## 0.74
As saídas apresentam:
Uma empresa está avaliando a taxa de sucesso no login de usuários em uma nova versão de seu aplicativo. Foram observados os seguintes dados de 60 usuários:
Usuarios <- c(
1,0,1,0,1,1,0,1,0,1,
1,1,0,1,0,1,1,0,1,0,
1,1,1,0,1,0,1,1,0,1,
1,0,1,0,1,1,0,1,1,0,
1,1,0,1,0,1,1,0,1,1,
1,1,0,1,0,1,1,0,1,1
)
Dados = data.frame(Usuarios = Usuarios)
Construa um intervalo de confiança de 95% bilateral para a proporção de logins bem-sucedidos na população. Interprete o intervalo.
A empresa definiu uma meta mínima aceitável de sucesso nos logins de \(p_0 = 0.60\). Formule e teste a hipótese:
\[ H_0: p = 0.60 \quad \text{vs} \quad H_1: p > 0.60 \]
Com base no p-valor, decida se há evidências suficientes para rejeitar \(H_0\) ao nível de 5%.
Quando trabalhamos com proporções em duas populações, nosso objetivo é realizar inferência sobre os parâmetros \(p_1\) e \(p_2\), que representam as verdadeiras proporções de sucessos nas populações 1 e 2, respectivamente. Construiremos:
A lógica da inferência é inteiramente baseada na variabilidade natural das proporções amostrais \(\hat{p}_1\) e \(\hat{p}_2\), que surge porque estamos observando apenas amostras das populações. Por isso, compreender a distribuição conjunta dessas proporções é fundamental para aplicar corretamente os métodos inferenciais.
Antes, porém, precisamos garantir que certas suposições mínimas são atendidas.
Para utilizar a aproximação Normal e aplicar os intervalos e testes clássicos para a diferença de proporções, assumimos que:
Uma “regra de bolso” muito utilizada é verificar se \(n_1\hat{p_1}\geq10\), \(n_1(1-\hat{p_1})\geq10\), \(n_2\hat{p_2}\geq10\) e \(n_2(1-\hat{p_2})\geq10\)
Imagine que uma equipe de saúde ocupacional está conduzindo um estudo sobre uso correto de equipamentos de proteção individual (EPIs) em dois setores de manutenção industrial: Setor A e Setor B. O objetivo é comparar a proporção de trabalhadores que utilizam corretamente o capacete de segurança em cada setor.
Foram observados 40 trabalhadores do Setor A e 50 trabalhadores do Setor B, registrando para cada trabalhador:
Os dados coletados foram os seguintes:
# Setor A
UsoCapacete_A <- c(
1,1,1,1,0,1,1,1,1,0,
1,1,0,1,1,1,1,0,1,0,
1,1,1,0,1,0,1,1,1,1,
0,0,1,1,1,1,1,1,1,0
)
# Setor B
UsoCapacete_B <- c(
1,1,0,0,1,1,1,0,1,1,
1,1,1,0,1,1,1,1,1,1,
1,0,0,1,1,1,0,1,1,1,
0,1,1,1,0,0,1,0,1,1,
1,1,0,1,0,1,1,1,0,1
)
Dados1 = data.frame(UsoCapacete_A=UsoCapacete_A)
Dados2 = data.frame(UsoCapacete_B=UsoCapacete_B)
n_A = length(Dados1$UsoCapacete_A)
Sucessos_A = sum(Dados1$UsoCapacete_A)
p_hat_A = mean(Dados1$UsoCapacete_A)
n_B = length(Dados2$UsoCapacete_B)
Sucessos_B = sum(Dados2$UsoCapacete_B)
p_hat_B = mean(Dados2$UsoCapacete_B)
Para comparar duas proporções populacionais \(p_1\) e \(p_2\), queremos construir um intervalo de confiança (IC) para a diferença \(p_1 - p_2\), que quantifica a incerteza da estimativa amostral \(\hat{p}_1 - \hat{p}_2\).
O IC clássico para a diferença de proporções é dado por:
\[ (\hat{p}_1 - \hat{p}_2) \pm z_{\alpha/2} \sqrt{\frac{\hat{p}_1(1 - \hat{p}_1)}{n_1} + \frac{\hat{p}_2(1 - \hat{p}_2)}{n_2}} \]
A função prop.test usa o IC clássico e
quando correct = TRUE, o R aplica a correção de
continuidade de Yates, que ajusta o cálculo para tornar o teste
(e o intervalo obtido por inversão) mais conservador.
Isso é útil quando:
No nosso exemplo prático com os setores A e B, como temos tamanhos amostrais razoáveis e proporções não extremas, não vamos aplicar a correção. Podemos calcular o intervalo de confiança para a diferença de proporções com:
# Intervalo de confiança bilateral para a diferença de proporções (Setor A - Setor B)
prop.test(
x = c(Sucessos_A, Sucessos_B),
n = c(n_A, n_B),
conf.level = 0.95,
correct = FALSE
)$conf.int
## [1] -0.153018 0.213018
## attr(,"conf.level")
## [1] 0.95
# Intervalo de confiança unilateral à esquerda (p_A - p_B < 0)
prop.test(
x = c(Sucessos_A, Sucessos_B),
n = c(n_A, n_B),
conf.level = 0.95,
correct = FALSE,
alternative = "less"
)$conf.int
## [1] -1.0000000 0.1835936
## attr(,"conf.level")
## [1] 0.95
# Intervalo de confiança unilateral à direita (p_A - p_B > 0)
prop.test(
x = c(Sucessos_A, Sucessos_B),
n = c(n_A, n_B),
conf.level = 0.95,
correct = FALSE,
alternative = "greater"
)$conf.int
## [1] -0.1235936 1.0000000
## attr(,"conf.level")
## [1] 0.95
Para duas proporções populacionais \(p_1\) e \(p_2\), podemos testar hipóteses do tipo:
\[ H_0: p_1 = p_2 \quad \text{vs} \quad H_1: p_1 \neq p_2, \ p_1 > p_2 \text{ ou } p_1 < p_2 \]
ou seja, o teste verifica se as proporções de sucesso nas duas populações são iguais ou diferentes.
Quando os tamanhos amostrais \(n_1\) e \(n_2\) são suficientemente grandes, podemos usar a aproximação normal para a estatística de teste da diferença de proporções:
\[ Z = = \frac{\hat{p}_1 - \hat{p}_2}{\sqrt{\hat{p}(1-\hat{p})\left(\frac{1}{n_1} + \frac{1}{n_2}\right)}} \]
O valor de \(Z\) é então comparado com a distribuição normal padrão para obter o p-valor.
A função prop.test realiza o teste de score, que é
equivalente à estatística de teste \(Z^2\), que tem uma distribuição \(\chi^2_1\), sob \(H_0\). Quando correct = TRUE,
o termo \(-0.5\) é acrescido na
estatística de teste.
prop.test aplica a correção de
continuidade de Yates (correct = TRUE), tornando o
teste mais conservador.correct = FALSE.No nosso exemplo prático, com os setores A e B, podemos testar se há diferença significativa no uso correto do capacete usando:
# Teste bilateral para duas proporções (Setor A vs Setor B)
prop.test(
x = c(Sucessos_A, Sucessos_B),
n = c(n_A, n_B),
alternative = "two.sided",
correct = FALSE
)
##
## 2-sample test for equality of proportions without continuity correction
##
## data: c(Sucessos_A, Sucessos_B) out of c(n_A, n_B)
## X-squared = 0.10227, df = 1, p-value = 0.7491
## alternative hypothesis: two.sided
## 95 percent confidence interval:
## -0.153018 0.213018
## sample estimates:
## prop 1 prop 2
## 0.75 0.72
# Teste unilateral à esquerda (p_A - p_B < 0)
prop.test(
x = c(Sucessos_A, Sucessos_B),
n = c(n_A, n_B),
alternative = "less",
correct = FALSE
)
##
## 2-sample test for equality of proportions without continuity correction
##
## data: c(Sucessos_A, Sucessos_B) out of c(n_A, n_B)
## X-squared = 0.10227, df = 1, p-value = 0.6254
## alternative hypothesis: less
## 95 percent confidence interval:
## -1.0000000 0.1835936
## sample estimates:
## prop 1 prop 2
## 0.75 0.72
# Teste unilateral à direita (p_A - p_B > 0)
prop.test(
x = c(Sucessos_A, Sucessos_B),
n = c(n_A, n_B),
alternative = "greater",
correct = FALSE
)
##
## 2-sample test for equality of proportions without continuity correction
##
## data: c(Sucessos_A, Sucessos_B) out of c(n_A, n_B)
## X-squared = 0.10227, df = 1, p-value = 0.3746
## alternative hypothesis: greater
## 95 percent confidence interval:
## -0.1235936 1.0000000
## sample estimates:
## prop 1 prop 2
## 0.75 0.72
Duas fábricas, Fábrica A e Fábrica B, produzem o mesmo componente. Uma amostra de componentes em cada fábrica foi coletada e os resultados estão a seguir (1 = peça defeituosa, 0 = peça ok):
# Dados (amostras independentes)
FabricaA <- c(
1,0,1,0,1,0,0,1,0,1,
0,1,0,0,1,1,0,1,0,0,
1,0,1,0,0,1,0,1,0,1,
1,0,1,0,0,1,0,1,0,1
)
FabricaB <- c(
0,1,0,0,1,0,0,0,1,0,
1,0,0,1,0,0,0,1,0,0,
0,1,0,0,0,1,0,0,1,0
)
Dados1 = data.frame(FabricaA = FabricaA)
Dados2 = data.frame(FabricaB = FabricaB)
Construa um intervalo de confiança de 95% bilateral para a diferença das proporções de itens defeituosos entre as fábricas. Interprete o intervalo.
A empresa acredita que a proporção de itens defeituosos da fabrica A é maior que a proporção de itens defeituosos da fábrica B. Com base no p-valor, decida se há evidências suficientes para rejeitar \(H_0\) ao nível de 5%.
Na prática estatística, muitas vezes precisamos avaliar a variabilidade de uma população ou comparar a variabilidade entre duas populações. Estamos interessados no parâmetro \(\sigma^2\), a variância populacional, que mede o grau de dispersão dos dados em torno da média.
A análise das variâncias é especialmente relevante quando:
Podemos considerar dois cenários principais:
Uma população
Testes de hipótese ou intervalos de confiança para
\(\sigma^2\).
Duas populações independentes
Comparação de variâncias \(\sigma_1^2\) e \(\sigma_2^2\) usando testes de igualdade de
variâncias ou intervalos de
confiança.
Em ambos os casos, supomos que os dados sigam uma distribuição normal. Este é um requisito essencial, pois a estatística de teste usada (qui-quadrado para uma população, F para duas populações) depende da normalidade.
O R implementa testes de variância de forma
prática por meio da função VarTest() do pacote
DescTools. Esta função permite:
Os argumentos da função VarTest()
são:
x = vetor com os dados da amostra da primeira
população;y = vetor com os dados da amostra da segunda
população (opcional, para comparação entre duas
populações);alternative = hipótese alternativa:
"greater" para hipótese alternativa unilateral à direita,
"less" para hipótese unilateral à esquerda, e
"two.sided" para testar desigualdade bilateral;ratio = valor numérico que representa a razão
das variâncias sob a hipótese nula (padrão é 1);sigma.squared = valor numérico que representa a
variância populacional sob a hipótese nula (utilizado para uma
população);conf.level = nível de confiança para o
intervalo de confiança.As saídas da função VarTest() são:
statistic: a estatística X (uma
população) ou F (duas populações) do teste;p.value: valor-p do teste;conf.int: intervalo de confiança. Se a
hipótese alternativa for unilateral, o intervalo será unilateral;estimate: estimativa da variância
populacional (uma população) ou razão das variâncias
amostrais (duas populações) ;null.value: valor sob a hipótese
nula;alternative: hipótese
alternativa.Para retornar somente o intervalo de confiança,
basta fazer VarTest(...)$conf.level.
Quando trabalhamos com a variância de uma única população normal, nosso objetivo é realizar inferência sobre o parâmetro \(\sigma^2\), que representa a verdadeira variabilidade da população. Construiremos:
A lógica da inferência é inteiramente baseada na variabilidade natural da amostra, que surge porque estamos observando apenas um subconjunto da população. Por isso, compreender a distribuição da estatística amostral associada à variância é fundamental para aplicar corretamente os métodos inferenciais.
Antes, porém, precisamos garantir que certas suposições mínimas são atendidas.
Para aplicar intervalos de confiança e testes clássicos para a variância, assumimos que:
Imagine que uma fábrica deseja avaliar a consistência na produção de peças metálicas. O objetivo é estimar a variância do diâmetro das peças, pois isso afeta diretamente a qualidade final e o encaixe em montagens subsequentes.
Para um estudo piloto, foram coletadas 15 peças produzidas durante um turno. Cada peça foi medida em milímetros quanto ao diâmetro externo. Os dados observados foram:
Diametros <- c(
10.12, 9.94, 10.08, 9.97, 10.05,
9.92, 10.11, 10.03, 10.07, 9.96,
10.15, 10.02, 9.98, 10.09, 9.93
)
Dados <- data.frame(Diametros = Diametros)
O objetivo agora é construir intervalos de confiança e realizar testes de hipótese para o parâmetro populacional \(\sigma^2\), a verdadeira variância do diâmetro das peças produzidas pela fábrica.
Entretanto, antes precisamos verificar se há indícios de que os dados são normalmente distribuídos. Vamos aos diagnósticos:
ggplot(Dados, aes(x = Diametros)) +
geom_density(fill="blue") +
xlab("Diâmetros") +
ylab("Densidade") +
theme_bw() +
theme(text = element_text(size = 14))
ggplot(Dados, aes(sample=Diametros)) +
stat_qq_band(fill="lightblue") +
stat_qq_line() +
stat_qq_point() +
xlab("Quantis Teoricos")+
ylab("Quantis Amostrais")+
theme_bw() +
theme(text = element_text(size = 14))
shapiro.test(Dados$Diametros)
##
## Shapiro-Wilk normality test
##
## data: Dados$Diametros
## W = 0.94705, p-value = 0.4793
O gráfico de densidade não aponta sérios desvios da simetria. O gráfico qq-plot aponta para a normalidade dos dados, que também é corroborada pelo teste de normalidade de Shapiro Wilk, a um nível de 5%. Então temos indícios de que os dados são normalmente distribuídos.
Para a variância de uma população normal \(\sigma^2\), queremos construir um intervalo de confiança (IC) que quantifique a incerteza da estimativa amostral \(s^2\).
O IC clássico para a variância populacional, baseado na distribuição qui-quadrado, é dado por:
\[ \left( \frac{(n-1)s^2}{\chi^2_{1-\alpha/2,\, n-1}},\; \frac{(n-1)s^2}{\chi^2_{\alpha/2,\, n-1}} \right) \]
Este intervalo é exatamente derivado da distribuição amostral da estatística \((n-1)s^2/\sigma^2 \sim \chi^2_{n-1}\) e, portanto, fornece uma estimativa precisa da variância populacional quando a população é normal.
A função VarTest() calcula automaticamente este
intervalo e também permite as versões unilaterais. Seguem os comandos
para os cálculos dos intervalos:
# Intervalo de confiança bilateral (default)
VarTest(x=Dados$Diametros,
conf.level = 0.95)$conf.int
## [1] 0.002995526 0.013900126
## attr(,"conf.level")
## [1] 0.95
# Intervalo de confiança unilateral à esquerda (sigma^2 < sigma0^2)
VarTest(x=Dados$Diametros, conf.level = 0.95, alternative = "less")$conf.int
## [1] 0.00000000 0.01190753
## attr(,"conf.level")
## [1] 0.95
# Intervalo de confiança unilateral à direita (sigma^2 > sigma0^2)
VarTest(x=Dados$Diametros, conf.level = 0.95, alternative = "greater")$conf.int
## [1] 0.003303386 Inf
## attr(,"conf.level")
## [1] 0.95
As saídas apresentam o intervalo de confiança e o nível estabelecído.
Para a variância populacional \(\sigma^2\), podemos testar hipóteses do tipo:
\[ H_0: \sigma^2 = \sigma_0^2 \quad \text{vs} \quad H_1: \sigma^2 \neq \sigma_0^2, \ \sigma^2 > \sigma_0^2 \text{ ou } \sigma^2 < \sigma_0^2 \]
onde \(\sigma_0^2\) é a variância de referência ou meta da população.
A estatística de teste clássica para a variância de uma população normal é baseada na distribuição qui-quadrado:
\[ \chi^2 = \frac{(n-1)s^2}{\sigma_0^2} \]
O valor de \(\chi^2\) é comparado com a distribuição qui-quadrado com \(n-1\) graus de liberdade para obter o p-valor.
A função VarTest() realiza esse teste automaticamente,
permitindo:
alternative = "two.sided")alternative = "less")alternative = "greater")Exemplo prático na nossa situação:
Suponha que queremos testar se a variância do diâmetro das peças é igual a uma meta de \(\sigma_0^2 = 0.006\) mm² versus diferentes hipóteses alternativas:
# Teste bilateral (H0: sigma^2 dif 0.006)
VarTest(x=Dados$Diametros,
sigma.squared = 0.006,
alternative = "two.sided")
##
## One Sample Chi-Square test on variance
##
## data: Dados$Diametros
## X-squared = 13.04, df = 14, p-value = 0.8387
## alternative hypothesis: true variance is not equal to 0.006
## 95 percent confidence interval:
## 0.002995526 0.013900126
## sample estimates:
## variance of x
## 0.005588571
# Teste unilateral à esquerda (H0: sigma^2 < 0.006)
VarTest(x=Dados$Diametros,
sigma.squared = 0.006,
alternative = "less")
##
## One Sample Chi-Square test on variance
##
## data: Dados$Diametros
## X-squared = 13.04, df = 14, p-value = 0.4766
## alternative hypothesis: true variance is less than 0.006
## 95 percent confidence interval:
## 0.00000000 0.01190753
## sample estimates:
## variance of x
## 0.005588571
# Teste unilateral à direita (H0: sigma^2 > 0.006)
VarTest(x=Dados$Diametros,
sigma.squared = 0.006,
alternative = "greater")
##
## One Sample Chi-Square test on variance
##
## data: Dados$Diametros
## X-squared = 13.04, df = 14, p-value = 0.5234
## alternative hypothesis: true variance is greater than 0.006
## 95 percent confidence interval:
## 0.003303386 Inf
## sample estimates:
## variance of x
## 0.005588571
Imagine que uma empresa de alimentos deseja avaliar a consistência do processo de envase de café moído. Cada pacote deveria conter exatamente 500 gramas, mas o maquinário apresentou sinais de instabilidade, sugerindo maior dispersão nos pesos embalados.
Para investigar essa inconsistência, foram coletados 20 pacotes consecutivos e pesados com alta precisão.
Os dados observados (em gramas) foram:
Pesos <- c(
498.6, 501.2, 499.4, 500.8, 497.9,
501.5, 499.1, 502.0, 498.8, 500.3,
501.1, 499.0, 500.7, 498.5, 501.8,
499.6, 500.9, 498.3, 501.4, 499.2
)
Dados <- data.frame(Pesos = Pesos)
Quando trabalhamos com variâncias de duas populações normais independentes, nosso objetivo é realizar inferência sobre os parâmetros \(\sigma_1^2\) e \(\sigma_2^2\), que representam as verdadeiras variâncias nas populações 1 e 2, respectivamente. Construiremos:
A lógica da inferência é inteiramente baseada na variabilidade natural das variâncias amostrais \(s_1^2\) e \(s_2^2\), que surge porque estamos observando apenas amostras das populações. Por isso, compreender a distribuição conjunta dessas variâncias (razão \(s_1^2 / s_2^2\)) é fundamental para aplicar corretamente os métodos inferenciais.
Antes, porém, precisamos garantir que certas suposições mínimas são atendidas.
Para aplicar intervalos e testes clássicos para a comparação de variâncias, assumimos que:
Imagine que uma fábrica deseja avaliar a consistência da produção em duas máquinas diferentes: Máquina A e Máquina B. O objetivo é comparar a variabilidade no diâmetro das peças produzidas por cada máquina.
Foram coletadas 15 peças da Máquina A e 18 peças da Máquina B, medindo o diâmetro em milímetros:
# Máquina A
Diametros_A <- c(
10.12, 9.94, 10.08, 10.01, 9.92,
10.15, 9.98, 10.05, 9.90, 10.06,
10.11, 9.96, 10.09, 10.03, 10.14
)
# Máquina B
Diametros_B <- c(
9.88, 10.07, 9.95, 10.12, 9.90,
10.10, 10.04, 10.15, 9.93, 10.08,
10.11, 9.92, 10.05, 10.09, 9.97,
10.13, 10.02, 9.94
)
Dados1 = data.frame(Diametros_A=Diametros_A)
Dados2 = data.frame(Diametros_B=Diametros_B)
O objetivo agora é construir intervalos de confiança e realizar testes de hipótese para a razão \(\sigma1^2/\sigma_2^2\), a verdadeira razão entre as variâncias dos diâmetros das peças produzidas pelas duas empresas.
Entretanto, antes, precisamos verificar se há indícios de que os dados de ambas as amostras são normalmente distribuídos. Vamos aos diagnósticos:
Para a primeira amostra:
ggplot(Dados1, aes(x = Diametros_A)) +
geom_density(fill="blue") +
xlab("Diâmetros") +
ylab("Densidade") +
theme_bw() +
theme(text = element_text(size = 14))
ggplot(Dados1, aes(sample=Diametros_A)) +
stat_qq_band(fill="lightblue") +
stat_qq_line() +
stat_qq_point() +
xlab("Quantis Teoricos")+
ylab("Quantis Amostrais")+
theme_bw() +
theme(text = element_text(size = 14))
shapiro.test(Dados1$Diametros_A)
##
## Shapiro-Wilk normality test
##
## data: Dados1$Diametros_A
## W = 0.95042, p-value = 0.5311
Para a segunda amostra:
ggplot(Dados2, aes(x = Diametros_B)) +
geom_density(fill="blue") +
xlab("Diâmetros") +
ylab("Densidade") +
theme_bw() +
theme(text = element_text(size = 14))
ggplot(Dados2, aes(sample=Diametros_B)) +
stat_qq_band(fill="lightblue") +
stat_qq_line() +
stat_qq_point() +
xlab("Quantis Teoricos")+
ylab("Quantis Amostrais")+
theme_bw() +
theme(text = element_text(size = 14))
shapiro.test(Dados2$Diametros_B)
##
## Shapiro-Wilk normality test
##
## data: Dados2$Diametros_B
## W = 0.92416, p-value = 0.1532
Em ambas as amostras, os gráficos de densidade não apontam sérios desvios da simetria. Os gráficos qq-plot apontam para a normalidade dos dados, que também é corroborada pelos testes de normalidade de Shapiro Wilk, a um nível de 5%. Então temos indícios de que os dados das duas populações são normalmente distribuídos.
Para comparar as variâncias de duas populações normais \(\sigma_1^2\) e \(\sigma_2^2\), queremos construir um intervalo de confiança (IC) para a razão de variâncias \(\sigma_1^2 / \sigma_2^2\), que quantifica a incerteza da estimativa amostral \(s_1^2 / s_2^2\).
O IC clássico para a razão de variâncias é baseado na distribuição F:
\[ \left( \frac{s_1^2}{s_2^2} \cdot \frac{1}{F_{1-\alpha/2,\, n_1-1,\, n_2-1}}, \quad \frac{s_1^2}{s_2^2} \cdot F_{\alpha/2,\, n_1-1,\, n_2-1} \right) \]
A função VarTest() calcula automaticamente este
intervalo e também permite IC unilateral à esquerda ou à
direita, útil quando o interesse é avaliar se a variância de
uma população é maior ou menor que a outra.
No nosso exemplo prático com as Máquinas A e B, como as distribuições são aproximadamente normais, podemos calcular o IC para a razão de variâncias com:
# Intervalo de confiança bilateral para a razão de variâncias (Máquina A / Máquina B)
VarTest(x=Dados1$Diametros_A,
y=Dados2$Diametros_B,
conf.level = 0.95)$conf.int
## [1] 0.3117689 2.4889663
## attr(,"conf.level")
## [1] 0.95
# Intervalo de confiança unilateral à esquerda (sigma_A^2 / sigma_B^2 < 1)
VarTest(x=Dados1$Diametros_A,
y=Dados2$Diametros_B,
conf.level = 0.95,
alternative = "less")$conf.int
## [1] 0.000000 2.083833
## attr(,"conf.level")
## [1] 0.95
# Intervalo de confiança unilateral à direita (sigma_A^2 / sigma_B^2 > 1)
VarTest(x=Dados1$Diametros_A,
y=Dados2$Diametros_B,
conf.level = 0.95,
alternative = "greater")$conf.int
## [1] 0.3684867 Inf
## attr(,"conf.level")
## [1] 0.95
Para comparar as variâncias de duas populações normais independentes \(\sigma_1^2\) e \(\sigma_2^2\), podemos testar hipóteses do tipo:
\[ H_0: \sigma_1^2 = \sigma_2^2 \quad \text{vs} \quad H_1: \sigma_1^2 \neq \sigma_2^2, \ \sigma_1^2 > \sigma_2^2 \text{ ou } \sigma_1^2 < \sigma_2^2 \]
A estatística de teste clássica para comparar duas variâncias é baseada na distribuição F:
\[ F = \frac{s_1^2}{s_2^2} \sim F_{n_1-1,\, n_2-1} \quad \text{sob } H_0: \sigma_1^2 = \sigma_2^2 \]
O valor de \(F\) é comparado com a distribuição F com \(n_1-1\) e \(n_2-1\) graus de liberdade para obter o p-valor.
A função VarTest() realiza esse teste automaticamente,
permitindo:
alternative = "two.sided")alternative = "less")alternative = "greater")Exemplo prático na nossa situação (Máquinas A e B):
# Teste bilateral (H0: sigma_A^2 = sigma_B^2)
VarTest(x=Dados1$Diametros_A,
y=Dados2$Diametros_B)
##
## F test to compare two variances
##
## data: x and y
## F = 0.85819, num df = 14, denom df = 17, p-value = 0.7815
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.3117689 2.4889663
## sample estimates:
## ratio of variances
## 0.8581878
# Teste unilateral à esquerda (H0: sigma_A^2 < sigma_B^2)
VarTest(x=Dados1$Diametros_A,
y=Dados2$Diametros_B,
alternative="less")
##
## F test to compare two variances
##
## data: x and y
## F = 0.85819, num df = 14, denom df = 17, p-value = 0.3908
## alternative hypothesis: true ratio of variances is less than 1
## 95 percent confidence interval:
## 0.000000 2.083833
## sample estimates:
## ratio of variances
## 0.8581878
# Teste unilateral à direita (H0: sigma_A^2 > sigma_B^2)
VarTest(x=Dados1$Diametros_A,
y=Dados2$Diametros_B,
alternative="greater")
##
## F test to compare two variances
##
## data: x and y
## F = 0.85819, num df = 14, denom df = 17, p-value = 0.6092
## alternative hypothesis: true ratio of variances is greater than 1
## 95 percent confidence interval:
## 0.3684867 Inf
## sample estimates:
## ratio of variances
## 0.8581878
Uma empresa produz baterias de íons de lítio em duas
linhas de montagem distintas:
- Linha X (processo mais antigo)
- Linha Y (processo modernizado e mais
automatizado)
Foram coletadas:
Os dados são:
# Linha X (maior variabilidade)
Cap_X <- c(
2998, 3012, 3005, 2987, 3021, 3009, 3018, 2994, 2979, 3030,
3011, 3002, 2988, 3024, 2993, 3020, 2985, 3007, 3015, 2990,
3001, 3022, 3010, 2996, 2989, 3008, 3027, 2978, 3003, 3019,
2986, 3025, 2992, 3006, 3014, 2984, 3032, 3004, 2991, 3023
)
# Linha Y (menor variabilidade)
Cap_Y <- c(
3005, 3010, 3001, 3007, 2998, 3012, 3003, 3004, 3008, 2999,
3006, 3011, 2997, 3002, 3009, 3013, 3000, 3005, 3006, 2998,
3010, 3001, 2999, 3004, 3007, 2997, 3002, 3011, 3003, 3012,
3004, 2998, 3006, 3005, 3010, 3007, 2999, 3008, 3002, 3013,
3001, 3000, 3009, 3004, 2997, 3006, 3012, 3003, 3005, 2998
)
DadosX <- data.frame(Capacidade = Cap_X)
DadosY <- data.frame(Capacidade = Cap_Y)
Na prática estatística, muitas vezes precisamos comparar médias de populações normais quando as variâncias são desconhecidas. Nesse contexto, o parâmetro de interesse é \(\mu\), a média populacional, enquanto a variabilidade é estimada a partir dos dados amostrais.
A análise de médias com variâncias desconhecidas é especialmente relevante quando:
Em todos os casos, supomos que os dados sigam uma
distribuição normal, pois a estatística de teste t
depende dessa suposição.
Os argumentos da função t.test() são:
x = vetor com os dados da amostra da primeira população
(utilize este argumento se você tiver somente uma população);y = vetor com os dados da amostra da segunda população
(opcional);alternative = hipótese alternativa:
"greater" para teste unilateral à direita,
"less" para teste unilateral à esquerda e
"two.sided" para teste bilateral (padrão);mu = número que representa o valor da média ou da
diferença das médias sob a hipótese nula (padrão é 0);conf.level = nível de confiança do intervalo (padrão é
0.95);paired = se TRUE, realiza o teste t
pareado (quando x e y são dependentes);var.equal = se TRUE, assume variâncias
populacionais iguais (caso de teste t com variâncias
iguais); se FALSE, realiza o teste t de Welch
(variâncias desiguais).As saídas da função t.test() são:
statistic: a estatística T;p.value: valor-p do teste;conf.int: intervalo de confiança para a média ou
diferença de médias;estimate: estimativa da média ou da diferença das
médias;null.value: valor de \(\mu_0\) sob a hipótese nula;alternative: hipótese alternativa;method: tipo de teste t realizado (uma amostra, duas
amostras, pareado, Welch etc.);data.name: nome dos objetos analisados.Para retornar o intervalo de confiança somente, basta usar
t.test(...)$conf.int.
Quando trabalhamos com a média de uma única população normal e variância desconhecida, nosso objetivo é realizar inferência sobre o parâmetro \(\mu\), que representa a média verdadeira da população. Podemos construir:
A lógica da inferência é baseada na variabilidade observada na amostra, que surge porque estamos observando apenas um subconjunto da população. Por isso, compreender a distribuição da estatística amostral associada à média (distribuição t de Student) é fundamental para aplicar corretamente os métodos inferenciais.
Antes de prosseguir, é importante garantir que certas suposições mínimas são atendidas.
Para aplicar intervalos de confiança e testes t para a média, assumimos que:
Um laboratório de análises clínicas deseja avaliar a concentração de glicose no sangue de pacientes em jejum. Os valores medidos têm variação natural entre os indivíduos.
Para um estudo piloto, foram coletadas 12 medições de diferentes pacientes. Os dados observados (em mg/dL) foram:
Glicose <- c(
92.5, 105.2, 98.7, 110.3, 101.6, 97.4,
104.1, 99.8, 108.7, 95.3, 102.9, 100.5
)
Dados <- data.frame(Glicose = Glicose)
O objetivo agora é construir intervalos de confiança e realizar testes de hipótese para o parâmetro populacional \(\mu\), a verdadeira média da concentração de glicose em jejum.
Entretanto, antes precisamos verificar se há indícios de que os dados são normalmente distribuídos. Vamos aos diagnósticos:
ggplot(Dados, aes(x = Glicose)) +
geom_density(fill="blue") +
xlab("Diâmetros") +
ylab("Densidade") +
theme_bw() +
theme(text = element_text(size = 14))
ggplot(Dados, aes(sample=Glicose)) +
stat_qq_band(fill="lightblue") +
stat_qq_line() +
stat_qq_point() +
xlab("Quantis Teoricos")+
ylab("Quantis Amostrais")+
theme_bw() +
theme(text = element_text(size = 14))
shapiro.test(Dados$Glicose)
##
## Shapiro-Wilk normality test
##
## data: Dados$Glicose
## W = 0.98838, p-value = 0.9993
O gráfico de densidade não aponta sérios desvios da simetria. O gráfico qq-plot aponta para a normalidade dos dados, que também é corroborada pelo teste de normalidade de Shapiro Wilk, a um nível de 5%. Então temos indícios de que os dados são normalmente distribuídos.
Quando a variância populacional \(\sigma^2\) é desconhecida, queremos construir um intervalo de confiança (IC) para a média populacional \(\mu\), que quantifique a incerteza da estimativa amostral \(\bar{x}\).
O IC clássico para a média, baseado na distribuição t de Student, é dado por:
\[ \left( \bar{x} - t_{1-\alpha/2,\, n-1} \frac{s}{\sqrt{n}}, \;\; \bar{x} + t_{1-\alpha/2,\, n-1} \frac{s}{\sqrt{n}} \right) \]
Este intervalo é derivado da estatística:
\[ t = \frac{\bar{x} - \mu}{s/\sqrt{n}} \sim t_{n-1} \]
Portanto, fornece uma estimativa precisa da média populacional mesmo quando a variância não é conhecida.
No R, a função t.test() calcula automaticamente
intervalos de confiança bilaterais e unilaterais.
Seguem exemplos usando os dados de exemplo:
# Intervalo de confiança bilateral (default)
t.test(Dados$Glicose,
conf.level = 0.95)$conf.int
## [1] 98.10079 104.73255
## attr(,"conf.level")
## [1] 0.95
# Intervalo de confiança unilateral à esquerda (mu < mu0)
t.test(Dados$Glicose,
alternative = "less")$conf.int
## [1] -Inf 104.1222
## attr(,"conf.level")
## [1] 0.95
# Intervalo de confiança unilateral à direita (mu > mu0)
t.test(Dados$Glicose,
alternative = "greater")$conf.int
## [1] 98.71109 Inf
## attr(,"conf.level")
## [1] 0.95
As saídas apresentam o intervalo de confiança e o nível estabelecido.
Quando a variância populacional \(\sigma^2\) é desconhecida, podemos testar hipóteses sobre a média populacional \(\mu\):
\[ H_0: \mu = \mu_0 \quad \text{vs} \quad H_1: \mu \neq \mu_0, \ \mu > \mu_0 \text{ ou } \mu < \mu_0 \]
onde \(\mu_0\) é a média de referência ou meta da população.
A estatística de teste é a estatística t de Student:
\[ t = \frac{\bar{x} - \mu_0}{s/\sqrt{n}} \sim t_{n-1} \]
O valor de \(t\) é comparado com a distribuição t com \(n-1\) graus de liberdade para obter o p-valor.
A função t.test() realiza esse teste automaticamente,
permitindo:
alternative = "two.sided")alternative = "less")alternative = "greater")Suponha que queremos testar se a média da glicose em jejum é igual a um valor de \(\mu_0 = 98\) mg/dL contra todas as hipóteses alternativas possíveis:
# Teste bilateral (H0: mu = 98)
t.test(Dados$Glicose,
mu = 98,
alternative = "two.sided")
##
## One Sample t-test
##
## data: Dados$Glicose
## t = 2.2679, df = 11, p-value = 0.04447
## alternative hypothesis: true mean is not equal to 98
## 95 percent confidence interval:
## 98.10079 104.73255
## sample estimates:
## mean of x
## 101.4167
# Teste unilateral à esquerda (H0: mu < 98)
t.test(Dados$Glicose,
mu = 98,
alternative = "less")
##
## One Sample t-test
##
## data: Dados$Glicose
## t = 2.2679, df = 11, p-value = 0.9778
## alternative hypothesis: true mean is less than 98
## 95 percent confidence interval:
## -Inf 104.1222
## sample estimates:
## mean of x
## 101.4167
# Teste unilateral à direita (H0: mu > 98)
t.test(Dados$Glicose,
mu = 98,
alternative = "greater")
##
## One Sample t-test
##
## data: Dados$Glicose
## t = 2.2679, df = 11, p-value = 0.02224
## alternative hypothesis: true mean is greater than 98
## 95 percent confidence interval:
## 98.71109 Inf
## sample estimates:
## mean of x
## 101.4167
Uma pesquisadora em nutrição esportiva deseja avaliar o nível de creatina sérica de atletas amadores que iniciaram recentemente um programa de suplementação. Sabe-se que há variação natural entre indivíduos, e a pesquisadora quer verificar se os níveis médios observados estão próximos dos valores esperados em indivíduos saudáveis.
Para isso, ela coleta 10 medições independentes de creatina sérica (em mg/dL) após quatro semanas de suplementação.
Os dados observados foram:
Creatina <- c(
0.75, 1.12, 0.94, 1.08, 0.74,
0.97, 1.04, 1.18, 0.91, 1.10
)
Dados <- data.frame(Creatina = Creatina)
Construa o intervalo de confiança bilateral para a média de concentração de creatina sérica.
Teste a hipótese de que a concentração média de creatina sérica é diferente de 1 mg/dL. Use um nível de significância de 5%.
Quando trabalhamos com duas populações dependentes (isto é, duas medições pareadas nos mesmos indivíduos, como antes/depois de um tratamento), nosso objetivo é realizar inferência sobre o parâmetro \(\mu_d\), que representa a média verdadeira das diferenças entre as duas medições. Podemos construir:
A inferência é baseada na variabilidade das diferenças dentro de cada par, e a estatística relevante é a média das diferenças \(\bar{D}\), cuja distribuição sob normalidade das diferenças segue uma t de Student com \(n-1\) graus de liberdade. Assim, é como se construíssemos um teste t para uma única amostra (a amostra das diferenças).
Para aplicar o intervalo de confiança e o teste t pareado, assumimos:
Importante: não é necessário que as duas variáveis originais sejam normais, apenas as diferenças.
Um fisioterapeuta esportivo deseja avaliar se um programa de fortalecimento muscular de 6 semanas melhora o tempo de reação de atletas amadores. O tempo de reação foi medido em milissegundos (ms) usando o mesmo equipamento, antes e depois do programa de treinamento. Como cada atleta é avaliado duas vezes, trata-se de um caso de amostras pareadas.
Abaixo estão os dados coletados de 12 atletas:
Tempo_antes <- c(255, 240, 262, 274, 248, 260,
251, 243, 270, 258, 266, 249)
Tempo_depois <- c(238, 231, 250, 260, 240, 252,
243, 237, 259, 249, 255, 241)
Dados <- data.frame(antes = Tempo_antes, depois = Tempo_depois)
Dados$Diferenca = Dados$antes - Dados$depois
Considere o objetivo de investigar, a partir de intervalos de confiança e teste de hipótese, o comportamento da diferença das médias populacionais de desempenho desses atletas.
Entretanto, antes precisamos verificar se há indícios de que as diferenças são normalmente distribuídas. Vamos aos diagnósticos:
ggplot(Dados, aes(x = Diferenca)) +
geom_density(fill="blue") +
xlab("Diâmetros") +
ylab("Densidade") +
theme_bw() +
theme(text = element_text(size = 14))
ggplot(Dados, aes(sample=Diferenca)) +
stat_qq_band(fill="lightblue") +
stat_qq_line() +
stat_qq_point() +
xlab("Quantis Teoricos")+
ylab("Quantis Amostrais")+
theme_bw() +
theme(text = element_text(size = 14))
shapiro.test(Dados$Diferenca)
##
## Shapiro-Wilk normality test
##
## data: Dados$Diferenca
## W = 0.89851, p-value = 0.1518
O gráfico de densidade não aponta um desvio muito sério de simetria. O gráfico qq-plot aponta para a normalidade dos dados (exceto por um desvio que não é grave), que também é corroborada pelo teste de normalidade de Shapiro Wilk, a um nível de 5%. Então temos indícios de que as diferenças são normalmente distribuídas.
Quando trabalhamos com duas populações dependentes, isto é, duas medições pareadas sobre os mesmos indivíduos, queremos construir um intervalo de confiança (IC) para a média das diferenças \(\mu_d\). Essa quantidade representa a diferença média verdadeira entre as duas condições.
Para cada par, definimos:
\[ D_i = X_{i1} - X_{i2} \]
e usamos a média das diferenças \(\bar{D}\), o desvio padrão das diferenças
\(s_D\) e o número de pares \(n\).
O IC clássico baseado na distribuição t de Student é:
\[ \left( \bar{D} - t_{1-\alpha/2,\, n-1}\frac{s_D}{\sqrt{n}},\; \bar{D} + t_{1-\alpha/2,\, n-1}\frac{s_D}{\sqrt{n}} \right) \]
onde:
Esse intervalo deriva da estatística:
\[ t = \frac{\bar{D} - \mu_d}{s_D/\sqrt{n}} \sim t_{n-1} \]
e fornece uma estimativa inferencial válida mesmo quando a variância populacional das diferenças é desconhecida.
No R, a função t.test() calcula automaticamente
intervalos de confiança bilaterais e unilaterais no
contexto pareado.
#Intervalo de confiança bilateral
t.test(Dados$antes,
Dados$depois,
paired = TRUE,
conf.level = 0.95)$conf.int
## [1] 8.121092 12.045575
## attr(,"conf.level")
## [1] 0.95
#Intervalo unilateral à esquerda
t.test(Dados$antes,
Dados$depois,
paired = TRUE,
alternative = "less",
conf.level = 0.95)$conf.int
## [1] -Inf 11.68442
## attr(,"conf.level")
## [1] 0.95
#Intervalo unilateral à direita
t.test(Dados$antes,
Dados$depois,
paired = TRUE,
alternative = "greater",
conf.level = 0.95)$conf.int
## [1] 8.482251 Inf
## attr(,"conf.level")
## [1] 0.95
As saídas apresentam o intervalo de confiança adequado ao tipo de hipótese escolhido.
Quando temos duas populações dependentes, isto é, duas medições pareadas sobre os mesmos indivíduos, podemos testar hipóteses sobre a média das diferenças:
\[ H_0: \mu_d = 0 \qquad \text{vs} \qquad H_1: \mu_d \neq 0,\ \mu_d > 0\ \text{ou}\ \mu_d < 0 \]
onde:
A estatística de teste é a estatística t de Student aplicada às diferenças:
\[ t = \frac{\bar{D} - \mu_{d,0}}{s_D / \sqrt{n}} \sim t_{n-1} \]
O valor da estatística t é comparado com a distribuição t com \(n-1\) graus de liberdade para obter o p-valor.
A função t.test() realiza automaticamente o
teste t pareado, permitindo:
alternative = "two.sided")alternative = "less")alternative = "greater")Suponha agora que queremos testar se o valor médio
antes é igual ao valor médio depois,
contra todas as alternativas possíveis. Considerando os vetores
antes e depois:
#Teste bilateral (H0: mu_d dif 0)
t.test(Dados$antes,
Dados$depois,
paired = TRUE,
alternative = "two.sided")
##
## Paired t-test
##
## data: Dados$antes and Dados$depois
## t = 11.31, df = 11, p-value = 2.133e-07
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
## 8.121092 12.045575
## sample estimates:
## mean difference
## 10.08333
#Teste unilateral à esquerda (H1: mu_d < 0)
t.test(Dados$antes,
Dados$depois,
paired = TRUE,
alternative = "less")
##
## Paired t-test
##
## data: Dados$antes and Dados$depois
## t = 11.31, df = 11, p-value = 1
## alternative hypothesis: true mean difference is less than 0
## 95 percent confidence interval:
## -Inf 11.68442
## sample estimates:
## mean difference
## 10.08333
#Teste unilateral à direita (H1: mu_d > 0)
t.test(Dados$antes,
Dados$depois,
paired = TRUE,
alternative = "greater")
##
## Paired t-test
##
## data: Dados$antes and Dados$depois
## t = 11.31, df = 11, p-value = 1.066e-07
## alternative hypothesis: true mean difference is greater than 0
## 95 percent confidence interval:
## 8.482251 Inf
## sample estimates:
## mean difference
## 10.08333
Imagine que a Secretaria de Saúde de um estado está implementando um novo curso de capacitação para aplicação de vacinas. A ideia é verificar se esse treinamento realmente melhora o tempo médio de atendimento dos profissionais em uma sala de vacinação. Foram selecionados 15 profissionais, e o tempo (em minutos) para aplicar uma dose em um paciente foi medido antes e depois do treinamento. Os dados coletados são:
dados_treinamento <- data.frame(
Profissional = 1:15,
Tempo_Antes = c(12.1, 11.3, 13.5, 14.2, 12.8, 11.9, 13.0, 14.5, 12.2, 13.7,
11.5, 12.9, 13.1, 14.0, 12.4),
Tempo_Depois = c(10.4, 10.7, 11.9, 12.8, 11.2, 11.0, 12.5, 12.7, 11.1, 12.6,
10.9, 11.7, 12.2, 12.3, 11.5)
)
A um nível de 5%, teste se o treinamento reduziu significativamente o tempo médio de aplicação de vacinas.
Quando trabalhamos com duas populações independentes
(isto é, observações do Grupo 1 não têm relação com observações do Grupo
2), nosso objetivo é realizar inferência sobre o parâmetro
\[
\mu_1 - \mu_2,
\]
que representa a diferença verdadeira entre as médias
populacionais dos dois grupos.
Quando as duas populações são normais e as
variâncias populacionais são desconhecidas, utilizamos o
teste t para duas amostras independentes (com
variâncias iguais ou desiguais). O R faz essa escolha automaticamente
via var.equal = TRUE ou FALSE na função
t.test().
Podemos construir:
Para aplicar o intervalo de confiança e o teste t para duas populações independentes, assumimos:
Um pesquisador deseja avaliar se um novo suplemento
nutricional melhora o desempenho de atletas em um teste de
força máxima.
Dois grupos independentes foram avaliados:
A variável medida foi a força máxima (kg) obtida no teste.
Abaixo estão os dados coletados (22 atletas no total):
Controle <- c(124, 118, 130, 122, 127, 119, 125, 121, 128, 123, 129, 130)
Tratamento <- c(127, 124, 128, 133, 138, 129, 130, 132, 129, 134)
Dados1 <- data.frame(Controle = Controle)
Dados2 <- data.frame(Tratamento = Tratamento)
O objetivo agora é construir intervalos de confiança e realizar testes de hipótese para a diferença entre as duas médias populacionais.
Entretanto, antes precisamos verificar se há indícios de que os dados das duas amostras são provenientes de populações normais e, caso positivo, verificar a igualdade das variâncias. Vamos aos diagnósticos de normalidade. Na primeira amostra:
ggplot(Dados1, aes(x = Controle)) +
geom_density(fill="blue") +
xlab("Diâmetros") +
ylab("Densidade") +
theme_bw() +
theme(text = element_text(size = 14))
ggplot(Dados1, aes(sample=Controle)) +
stat_qq_band(fill="lightblue") +
stat_qq_line() +
stat_qq_point() +
xlab("Quantis Teoricos")+
ylab("Quantis Amostrais")+
theme_bw() +
theme(text = element_text(size = 14))
shapiro.test(Dados1$Controle)
##
## Shapiro-Wilk normality test
##
## data: Dados1$Controle
## W = 0.93993, p-value = 0.4971
Na segunda amostra:
ggplot(Dados2, aes(x = Tratamento)) +
geom_density(fill="blue") +
xlab("Diâmetros") +
ylab("Densidade") +
theme_bw() +
theme(text = element_text(size = 14))
ggplot(Dados2, aes(sample=Tratamento)) +
stat_qq_band(fill="lightblue") +
stat_qq_line() +
stat_qq_point() +
xlab("Quantis Teoricos")+
ylab("Quantis Amostrais")+
theme_bw() +
theme(text = element_text(size = 14))
shapiro.test(Dados2$Tratamento)
##
## Shapiro-Wilk normality test
##
## data: Dados2$Tratamento
## W = 0.9803, p-value = 0.9667
Em ambas as amostras, os gráficos de densidade não apontam sérios desvios da simetria. Os gráficos qq-plot apontam para a normalidade dos dados, que também é corroborada pelos testes de normalidade de Shapiro Wilk, a um nível de 5%. Então temos indícios de que os dados das duas populações são normalmente distribuídos.
Agora verificamos se as variâncias são iguais ou diferentes:
VarTest(x=Dados1$Controle,
y=Dados2$Tratamento)
##
## F test to compare two variances
##
## data: x and y
## F = 1.107, num df = 11, denom df = 9, p-value = 0.8932
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.2829693 3.9717928
## sample estimates:
## ratio of variances
## 1.106997
Logo, ao nível de 5% de significância, temos evidências de que as
variâncias são iguais. Assim, essa informção deverá ser levada para a
função t.test
Quando trabalhamos com duas populações independentes, queremos construir um intervalo de confiança (IC) para a diferença entre as médias populacionais:
\[ \mu_1 - \mu_2. \]
A inferência depende do comportamento das variâncias amostrais. Existem duas versões clássicas do intervalo:
Assumimos que as duas populações têm variâncias iguais:
\[
\sigma_1^2 = \sigma_2^2.
\]
Sejam:
A variância combinada (pooled) é:
\[ s_p^2 = \frac{ (n_1 - 1)s_1^2 + (n_2 - 1)s_2^2 } { n_1 + n_2 - 2 }. \]
O intervalo de confiança é:
\[ \left( (\bar{X}_1 - \bar{X}_2) - t_{1-\alpha/2,\, n_1+n_2-2} \cdot s_p \sqrt{\frac{1}{n_1} + \frac{1}{n_2}}, \; (\bar{X}_1 - \bar{X}_2) + t_{1-\alpha/2,\, n_1+n_2-2} \cdot s_p \sqrt{\frac{1}{n_1} + \frac{1}{n_2}} \right) \]
Quando as variâncias populacionais são distintas:
\[ \sigma_1^2 \neq \sigma_2^2, \]
não é adequado combinar variâncias. Nesse caso, o erro padrão é
\[ SE = \sqrt{ \frac{s_1^2}{n_1} + \frac{s_2^2}{n_2} }. \]
E os graus de liberdade aproximados são dados por
\[ gl = \frac{ \left( \frac{s_1^2}{n_1} + \frac{s_2^2}{n_2} \right)^2 }{ \frac{(s_1^2/n_1)^2}{n_1 - 1} + \frac{(s_2^2/n_2)^2}{n_2 - 1} }. \]
O intervalo de confiança é:
\[ (\bar{X}_1 - \bar{X}_2) \pm t_{1-\alpha/2,\, gl} \cdot SE. \]
Essa versão é mais conservadora e é o padrão do R, pois não assume igualdade de variâncias.
A função t.test() calcula automaticamente
intervalos bilaterais e unilaterais e permite escolher
entre as duas versões usando var.equal. Como no nosso
exemplo, assumimos as variâncias iguais, seguem os códigos:
# Intervalo de confiança bilateral (variâncias iguais)
t.test(Dados1$Controle,
Dados2$Tratamento,
var.equal = TRUE,
conf.level = 0.95)$conf.int
## [1] -9.389096 -2.077570
## attr(,"conf.level")
## [1] 0.95
# Intervalo unilateral à esquerda (mu1 - mu2 < 0)
t.test(Dados1$Controle,
Dados2$Tratamento,
alternative = "less",
var.equal = TRUE,
conf.level = 0.95)$conf.int
## [1] -Inf -2.710672
## attr(,"conf.level")
## [1] 0.95
# Intervalo unilateral à direita (mu1 - mu2 > 0)
t.test(Dados1$Controle,
Dados2$Tratamento,
alternative = "greater",
var.equal = TRUE,
conf.level = 0.95)$conf.int
## [1] -8.755995 Inf
## attr(,"conf.level")
## [1] 0.95
Quando trabalhamos com duas populações independentes, podemos testar hipóteses sobre a diferença entre as médias populacionais:
\[ H_0: \mu_1 - \mu_2 = 0 \qquad \text{vs} \qquad H_1: \mu_1 - \mu_2 \neq 0,\ \mu_1 - \mu_2 > 0,\ \mu_1 - \mu_2 < 0 \]
onde:
A estatística de teste depende da suposição sobre as variâncias populacionais.
Quando assumimos:
\[ \sigma_1^2 = \sigma_2^2, \]
utilizamos a variância combinada:
\[ s_p^2 = \frac{ (n_1-1)s_1^2 + (n_2-1)s_2^2 }{ n_1+n_2-2 }. \]
A estatística t é:
\[ t = \frac{ (\bar{X}_1 - \bar{X}_2) - (\mu_1 - \mu_2)_0 }{ s_p \sqrt{\frac{1}{n_1} + \frac{1}{n_2}} } \sim t_{n_1+n_2-2}, \]
onde:
Quando permitimos:
\[ \sigma_1^2 \neq \sigma_2^2, \]
a estatística t é:
\[ t = \frac{ (\bar{X}_1 - \bar{X}_2) - (\mu_1 - \mu_2)_0 }{ \sqrt{ \frac{s_1^2}{n_1} + \frac{s_2^2}{n_2} } }. \]
Os graus de liberdade são aproximados por:
\[ gl = \frac{ \left( \frac{s_1^2}{n_1} + \frac{s_2^2}{n_2} \right)^2 }{ \frac{(s_1^2/n_1)^2}{n_1 - 1} + \frac{(s_2^2/n_2)^2}{n_2 - 1} }. \]
A seguir, segue o nosso exemplo testando várias hipóteses alternativas, considerando que as variâncias são iguais:
# Teste bilateral (H0: mu1 - mu2 = 0)
t.test(Dados1$Controle,
Dados2$Tratamento,
var.equal = TRUE,
alternative = "two.sided")
##
## Two Sample t-test
##
## data: Dados1$Controle and Dados2$Tratamento
## t = -3.2714, df = 20, p-value = 0.003819
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -9.389096 -2.077570
## sample estimates:
## mean of x mean of y
## 124.6667 130.4000
# Teste unilateral a esquerda (H0: mu1 - mu2 < 0)
t.test(Dados1$Controle,
Dados2$Tratamento,
var.equal = TRUE,
alternative = "less")
##
## Two Sample t-test
##
## data: Dados1$Controle and Dados2$Tratamento
## t = -3.2714, df = 20, p-value = 0.001909
## alternative hypothesis: true difference in means is less than 0
## 95 percent confidence interval:
## -Inf -2.710672
## sample estimates:
## mean of x mean of y
## 124.6667 130.4000
# Teste unilateral a direita (H0: mu1 - mu2 > 0)
t.test(Dados1$Controle,
Dados2$Tratamento,
var.equal = TRUE,
alternative = "greater")
##
## Two Sample t-test
##
## data: Dados1$Controle and Dados2$Tratamento
## t = -3.2714, df = 20, p-value = 0.9981
## alternative hypothesis: true difference in means is greater than 0
## 95 percent confidence interval:
## -8.755995 Inf
## sample estimates:
## mean of x mean of y
## 124.6667 130.4000
A Secretaria de Saúde quer comparar a cobertura da vacina DTP entre municípios de Minas Gerais (MG) e municípios de outros estados (Fora de MG) para saber se as ações locais em MG resultaram em cobertura média maior. Foram selecionados 20 municípios de MG e 25 municípios fora de MG aleatoriamente. Os dados coletados foram:
MG <- c(86.1, 84.5, 88.2, 85.0, 87.3, 83.9, 89.0, 86.7, 84.2, 88.8, 85.5, 87.8, 86.0, 84.9, 88.1, 85.7, 87.0, 86.9, 83.6, 89.3)
Fora_de_MG <- c(81.4, 79.8, 80.5, 82.0, 78.9, 80.1, 77.6, 81.0, 79.3, 80.8, 78.4, 82.2, 79.9, 80.6, 78.7, 81.5, 79.1, 80.0, 77.8, 82.4, 75.7, 74.5, 75, 85.7,77.5)
Dados1 = data.frame(MG = MG)
Dados2 = data.frame(Fora_de_MG = Fora_de_MG)
Quando trabalhamos com amostras pequenas, a aplicação do teste
t exige atenção especial à normalidade e, no caso de duas
populações independentes, à igualdade de variâncias.
Agora, entrando no cenário de amostras grandes, algumas
dessas exigências tornam-se menos rígidas, especialmente por causa do
Teorema Central do Limite. Ainda assim, existem verificações importantes
que devem ser feitas antes de aplicar o teste
t.
Em todos os cenários analisados — uma população, duas populações
dependentes e duas independentes (com ou sem variâncias iguais) — a
função recomendada no R continua sendo t.test. Isso ocorre
porque, com amostras grandes, a distribuição t se aproxima da
distribuição normal padrão, de modo que o teste t e o teste z tornam-se
praticamente equivalentes. Por isso, não há necessidade de usar um teste
z separado: o próprio t.test já é totalmente adequado e
robusto para esses casos.
A seguir, detalhamos os cuidados necessários nos contextos clássicos.
O que verificar antes do teste:
O que verificar antes do teste:
O que verificar antes do teste: