Teste de Hipóteses: Alguns testes
Agora que já definimos os principais conceitos de teste de hipótese, vamos discutir algun casos particulares:
- Teste de Razão de Verossimilhança
- Teste de Hipóteses Simples
- Karlin-Rubin
- Hipótese Alternativa Bilateral
- Teste T
- Comparando médias de duas Normais
- Comparando variâncias de duas Normais
Teste de Razão de Verossimilhança
Se é a verossimilhança de um modelo para , considere a estatística para o teste contra . A região de rejeição desse teste é do tipo com dado de forma que .
Teste de Hipótese Simples
Uma hipótese é dita simples se contém um único parâmetro . Nesse caso, o espaço é formada por duas distribuições concorrentes. Isto é, vamos assumir que vem de ou . Assim e se os dados tem distribuição .
A função poder para um teste é denotada da seguinte forma:
Teorema: Seja o procedimento de teste que não rejeita se e rejeita se . Então, para todo outro procedimento de teste ,
Queremos escolher um teste que minimize essa combinação linear . Claro que seria ótimo ter esse erro zerado, mas sabemos que existe uma espécie de trade off entre esses erros. Esse teorema dá o teste necessário para que isso acontença.
Corolário: Considere as hipóteses do teorema anterior, e . Defina estatística de teste razão de verossimilhança: Defina o procedimento de teste : Rejeita se . Então o valor de é mínimo.
Lema Neyman-Pearson
Suponha que tem a seguinte forma, para algum : não é rejeitada se e o é quando Se é outro procedimento de teste tal que , então
📝
Exemplo inicial
Considere a densidade Considere a Hipotese Nula e a Alternativa . Rejeitamos a hipótese nula se em que é determinado de forma que para um pre-especificado. Pelo Lema de Neyman Pearson, qualquer outro procedimento com nível reduz o poder do teste.
Implementação
Vamos fazer uma simples implementação de uso para esse tipo de problema.
python
import numpy as np
from scipy.stats import bernoulli, binom
from scipy.optimize import brute
Nesse caso, vamos fazer uma simples simulação, onde um parâmetro de uma distribuição de Bernoulli pode ser ou . Vamos gerar essa amostra, mas sem de fato conhecer verdadeiro.
python
ro = np.random.RandomState(1000000) #random state
p = ro.choice([0.4, 0.6])
Teremos uma amostra de tamanho .
python
n = 20
X = ro.binomial(1, p, size = n)
Vamos utilizar o Lema Neyman-Pearson. O objetivo é testar as seguintes hipóteses:
Vamos fixar o tamanho do teste. Temos que, se ,
Assim:
Isto é, preciso escolher que satisfaça essa relação. Vamos calcular numericamente utilizando um método de otimização por bruta força (são poucas as opções). Como não queremos que seja marior do que 0.05, precisamos colocar peso para que não seja. Veja que existem vários valores de que satisfazem isso.
```python alpha0 = 0.05 Y = binom(n = n, p = 0.4)
func = lambda k, n: np.abs(0.95 - Y.cdf((1/2)np.log(k)/np.log(3/2) + n/2)) + \ 10(0.95 > Y.cdf((1/2)*np.log(k)/np.log(3/2) + n/2)) ```
python
k = brute(func, ranges = (slice(1,20,1),), args = (n,))[0]
k
6.0
Por esse motivo, vamos tomar . Pela Lema de Neyman Pearson, esse teste é o que minimiza o Erro do Tipo II.
Vamos ver se rejeitamos ou não a hipótese nula baseado nos dados obtidos.
```python f0 = lambda x: 0.4(sum(x))*0.6(len(x) - sum(x)) f1 = lambda x: 0.6(sum(x))*0.4(len(x) - sum(x))
if f1(X) > k*f0(X): print(r'Rejeitamos H0.') else: print(r'Não rejeitamos H0.') ```
Não rejeitamos H0.
Vamos ver quem é , então.
python
print('O valor de p é .... ')
print(p)
O valor de p é ....
0.4
Fizemos bem em não rejeitar a hipótese nula!
Karlin-Rubin
O Teorema de Karlin-Rubin estende o Lema de Neyman-Pearson para hipóteses compostas. Assim, considere contra . Se é uma estatística suficiente para e a familia de pdfs de tem razão de verossimilhanças crescentes, então para todo , o teste que rejeita se é UMP com nível , em que .
Hipótese Alternativa Bilateral
Seja uma amostra aleatória de uma distribuição normal com média desconhecida e variância conhecida e queremos testar a hipótese
Como é um estimador consistente de , faz sentido rejeitar a hipótese nula quando a média amostral se afasta de . Para isso, vamos escolher de forma que
Observação:
Observação 2: No cálculo substituimos por , porque estamos "condicionando" no conhecimento deles serem iguais.
Isto é, queremos que o tamanho do teste seja , lembrando que o tamanho do teste é o supremo das probabilidades de se rejeitar a hipótese nula quando ela é verdadeira.
Teste t
Suponha que é uma amostra aleatória da distribuição , com parâmetros desconhecidos e queremos testar a hipótese:
Sabemos que é uma boa estatística de teste e rejeitamos se . Essa estatística é interessante porque quando . Por isso chamamos de testes t quando baseados na estatística . Podemos também inverter os sinais de desigualdade e rejeitar quando .
```python from pandas import DataFrame from scipy.stats import t import matplotlib.pyplot as plt import seaborn as sns sns.set()
%matplotlib notebook ```
```python mu0 = 10
Vamos escolher mu e sigma de forma aleatória, mas não significa que é uma variável aleatória.
n = 20 ```
Distibuição de U
Vamos gerar uma aproximação para a distribuição de para um determinado .
python
U_values = {}
for i in range(6):
mu = ro.normal(mu0, 1) if i < 5 else 10
sigma = ro.exponential(mu0)
key = 'mu = {}, sigma = {}'.format(np.round(mu,2), np.round(sigma,2))
U_values[key] = np.zeros(10000)
for j in range(10000):
X = ro.normal(mu, sigma, size = n)
U = np.sqrt(n)*(np.mean(X) - mu0)/np.std(X, ddof = 1)
U_values[key][j] = U
U_values = DataFrame(U_values)
python
fig, ax = plt.subplots(figsize = (10,6))
sns.kdeplot(data = U_values, ax = ax)
ax.set_title('Distribuição aproximada de U')
plt.show()
Teorema: Seja o quartil da distribuição com graus de liberdade. Então, segundo o teste citado acima, a função poder tem as seguintes propriedades:
- , quando .
- , quando .
- , quando .
- , quando .
- , quando .
O teste também é não enviesado como consequência.
P-valores para testes t
Seja a estatística quando observada. Seja a cdf da distribuição t com graus de liberdade. Então o p-valor para é , enquanto o p-valor para é .
Distribuição t não central
O objetivo é encontrar a distribuição de mesmo quando . Seja e variáveis aletórias independentes com distribuição e , respectivamente. Então tem distribuição t não central com graus de liberdade e não centralidade . Denotaremos a cdf dessa distribuição.
Teorema: (Função Poder): Seja amostra aleatória de . A distribuição de é t não central com graus de liberdade e parâmetro de não centralidade (Observe que isso ocorre porque dividimos o numerador e o denominador por . Além disso, note que não é uma quantidade pivotal, dado que sua distribuição depende de parâmetros desconhecidos) Suponha que o procedimento rejeita se . Então a função poder é Se rejeita se . Então a função poder é
```python from scipy.stats import nct #noncentral t distribution from matplotlib import animation from IPython.display import HTML import warnings
warnings.filterwarnings('ignore') ```
python
n = 10
mu0 = 5
sigma = 2
psi = lambda mu: np.sqrt(n)*(mu - mu0)/sigma
python
X = nct(df = n-1, nc = psi(-20))
Vamos ver o que acontece quando variamos . Nesse caso .
```python fig, ax = plt.subplots()
x = np.linspace(X.ppf(0.01), X.ppf(0.99), 100)
line, = ax.plot(x, X.pdf(x), 'r-', lw=5, alpha=0.6)
ax.set_xlim((-60,60)) ax.set_ylim((0,0.3)) ax.set_title('t não central')
def animate(i,n):
x = np.linspace(-60, 60, 100)
line.set_data(x, nct.pdf(x, df = n-1, nc = psi(i-20)))
return line,
HTML(animation.FuncAnimation(fig, animate, frames = 40, interval = 100, fargs=(n,), repeat = False).to_html5_video()) ```
Alternativa Bilateral
Tome agora a hipótese
Podemos usar a mesma estatística , mas agora que temos dois lados, vamos fazer o seguinte processo (vou construir de forma intuitiva, no livro tem uma formalização):
-
O procedimento de teste é do tipo: Rejeitamos se ou . Vamos considerar e , para simplificar.
-
Seja o tamanho do teste, isto é, a probabilidade de rejeitarmos a hipótese nula quando . Quando , tem distribuição t com graus de liberdade. Assim:
python
n = 20
alpha0 = 0.05
c = t.ppf(df = n-1, q = 1 - alpha0/2)
python
X = t(df = n-1)
x = np.arange(-5,5,0.1)
plt.plot(x, X.pdf(x))
plt.fill_between(x[(x < -c)], X.pdf(x[(x < -c)]), color = 'blue')
plt.fill_between(x[(x > c)], X.pdf(x[(x > c)]), color = 'blue')
plt.title('Distribuição de U e Região de Rejeição')
plt.show()
Função Poder
P-valor
Seja o valor observado da variável . Vamos lembrar que o p-valor é o menor tamanho tal que se rejeita a hipótese com esse valor observado. Como só rejeitamos se:
Logo o p-valor é .
Comparando médias de duas normais
Assumimos que é uma amostra da distribuição normal com média e variância , enquanto é normal com média e variância . Estamos interessados no teste A função poder é dada por . A discussão quando as normais tem diferentes normais será postergada.
Defina
A distribuição: com graus de liberdade, com parâmetro de não centralidade
Note que se , é uma distribuição t padrão.
Função Poder
Considere o procedimento de teste que rejeite se . Assim:
- , quando .
- , quando .
- , quando .
- , quando .
- , quando .
Além do mais o teste é não enviesado.
P-valor
Depois de termos observado as amostras, seja a estatística observada de . O p-valor da hipótese é .
Equivalentemente com o teste t do item 3, podemos expressar tudo com a hipótese bilateral e só altera o graude liberade quando comparado com o teste t anterior.
Variâncias diferentes
Razão entre as variâncias é conhecida
Suponha que se as variâncias de e são e e que . Então podemos usar a estatística
Problema de Behrens-Fisher
Quando os 4 parâmetros das normais são desconhecidos, tão pouco a razão de variâncias, nem a estatística de razão de verossimilhança tem distribuição conhecida. Algumas tentativas já foram feitas, como Welch e outros.
Comparando variâncias de duas Normais
Assumimos que é uma amostra da distribuição normal com média e variância , enquanto é normal com média e variância . Estamos interessados no teste A função poder é dada por . COnsidere e definidos anteriormente. Então temos que é estimador para , enquanto é estimador para .
Defina
Rejeitaremos se , onde será escolhido para que esse teste tenha nível de significância . Esse teste é chamado de teste F, pois a distribuição de é F com parâmetros e . Em particular se , tem distribuição F. Onde a distribuição F é descrita aqui.
Função Poder
Considere o procedimento de teste que rejeite se . Assim:
- , quando .
- , quando .
- , quando .
- , quando .
- , quando .
Além do mais o teste é não enviesado.
P-valor
Depois de termos observado as amostras, seja a estatística observada de . O p-valor da hipótese é .