import pandas as pd
import numpy as np
from scipy import stats
import seaborn as sns
import matplotlib.pyplot as plt
from decimal import Decimal
import warnings
warnings.filterwarnings('ignore')
df_salarios = pd.read_csv('dados/dados_tratados.csv').drop('Unnamed: 0', axis=1)
df_b3 = pd.read_csv('dados/b3_stocks_1994_2020.csv')
df_b3['datetime'] = pd.to_datetime(df_b3['datetime'])
No estudo de probabilidades, vimos alguns modelos probabilísticos que procuram medir a variabilidade de fenômenos casuais de acordo com suas ocorrências, esses são as distribuições de probabilidade de variáveis aleatórias. Porém, na prática, por mais que tenhamos uma ideia sobre a forma da distribuição, não temos os valores exatos dos parâmetros que a especificam. Logo, o nosso propósito é descobrir (estimar) os parâmetros da distribuição para sua posterior utilização.
Raramente se consegue obter a distribuição exata de alguma variável, ou porque isso é muito custoso, ou muito demorado ou às vezes o processo medido não permite isso. Outras vezes estamos interessados em explorar relações entre variáveis envolvendo experimentos mais complexos, para a obtenção dos dados. Imagine que estamos entender a relação entre a venda de um produto com sua localização em um supermercado. Para responder essa questão, teríamos que testar diversas localizações para obter os dados de vendas para essa localizações, o que, nesse caso, não existe uma forma clara de um conjunto de dados com todos os elementos. Mas um pequena parcela desse todo, uma amostra, nos facilita na identificação e solução do problema de localização do produto. Essas situações ditas acima são objetos da inferência estatística.
Dois conceitos fundamentais para o desenvolvimento da inferência estatística são:
Vamos ver no Python.
df_salarios
ano_trabalho | nivel_experiencia | tipo_de_contrato | cargo | salario | moeda_salario | salario_em_dolares | pais_residencia | tipo_trabalho | local_companhia | tamanho_companhia | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2023 | Senior/Especialista | Tempo integral | Principal Data Scientist | 80000 | EUR | 85847 | ES | Home office | ES | Grande |
1 | 2023 | Pleno | Contrato | ML Engineer | 30000 | USD | 30000 | US | Home office | US | Pequeno |
2 | 2023 | Pleno | Contrato | ML Engineer | 25500 | USD | 25500 | US | Home office | US | Pequeno |
3 | 2023 | Senior/Especialista | Tempo integral | Data Scientist | 175000 | USD | 175000 | CA | Home office | CA | Medio |
4 | 2023 | Senior/Especialista | Tempo integral | Data Scientist | 120000 | USD | 120000 | CA | Home office | CA | Medio |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
3750 | 2020 | Senior/Especialista | Tempo integral | Data Scientist | 412000 | USD | 412000 | US | Home office | US | Grande |
3751 | 2021 | Pleno | Tempo integral | Principal Data Scientist | 151000 | USD | 151000 | US | Home office | US | Grande |
3752 | 2020 | Junior | Tempo integral | Data Scientist | 105000 | USD | 105000 | US | Home office | US | Pequeno |
3753 | 2020 | Junior | Contrato | Business Data Analyst | 100000 | USD | 100000 | US | Home office | US | Grande |
3754 | 2021 | Senior/Especialista | Tempo integral | Data Science Manager | 7000000 | INR | 94665 | IN | Hibrido | IN | Grande |
3755 rows × 11 columns
df_salarios
será nossa população, sendo a mesma disposta de 3755 linhas. Logo nossa população é de 3755
df_amostra = df_salarios.sample(n=500, random_state=42)
df_amostra
ano_trabalho | nivel_experiencia | tipo_de_contrato | cargo | salario | moeda_salario | salario_em_dolares | pais_residencia | tipo_trabalho | local_companhia | tamanho_companhia | |
---|---|---|---|---|---|---|---|---|---|---|---|
2148 | 2022 | Senior/Especialista | Tempo integral | Machine Learning Software Engineer | 168000 | USD | 168000 | CA | Home office | CA | Medio |
1044 | 2023 | Senior/Especialista | Tempo integral | Data Analyst | 179975 | USD | 179975 | US | Home office | US | Medio |
3321 | 2022 | Senior/Especialista | Tempo integral | Data Scientist | 144000 | USD | 144000 | US | Home office | US | Medio |
439 | 2023 | Senior/Especialista | Tempo integral | Applied Scientist | 222200 | USD | 222200 | US | Presencial | US | Grande |
3519 | 2021 | Diretor | Tempo integral | Head of Data | 230000 | USD | 230000 | RU | Hibrido | RU | Grande |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2110 | 2022 | Senior/Especialista | Tempo integral | Data Engineer | 220000 | USD | 220000 | US | Home office | US | Medio |
157 | 2023 | Pleno | Tempo integral | Data Analyst | 38000 | GBP | 46178 | GB | Presencial | GB | Medio |
2754 | 2022 | Senior/Especialista | Tempo integral | Data Analyst | 110000 | USD | 110000 | US | Presencial | US | Medio |
912 | 2023 | Pleno | Tempo integral | Data Engineer | 154000 | USD | 154000 | US | Presencial | US | Medio |
551 | 2023 | Pleno | Tempo integral | Data Engineer | 149600 | USD | 149600 | US | Presencial | US | Medio |
500 rows × 11 columns
Já acima, temos uma amostra aleatória com 500 pessoas. Logo nossa amostra é de 500.
Temos que ter um cuidado como escolhemos nossa amostra, pois se está for escolhida de forma errada, podemos ter resultados que não são reais. Vamos exemplificar. Nós temos a população (df_salarios
), temos a amostra aleatória (df_amostra
) e vamos agora criar uma amostra que seja enviesada, pegando apenas valores que tenham um salário maior que o da população.
df_amostra2 = df_salarios[df_salarios['salario_em_dolares'] > 137570].sample(n=500, random_state=42)
df_amostra2
ano_trabalho | nivel_experiencia | tipo_de_contrato | cargo | salario | moeda_salario | salario_em_dolares | pais_residencia | tipo_trabalho | local_companhia | tamanho_companhia | |
---|---|---|---|---|---|---|---|---|---|---|---|
1888 | 2022 | Senior/Especialista | Tempo integral | ML Engineer | 235000 | USD | 235000 | US | Home office | US | Medio |
369 | 2023 | Senior/Especialista | Tempo integral | Data Engineer | 240000 | USD | 240000 | US | Presencial | US | Medio |
3053 | 2022 | Senior/Especialista | Tempo integral | Data Scientist | 180000 | USD | 180000 | US | Home office | US | Grande |
791 | 2023 | Senior/Especialista | Tempo integral | Data Engineer | 252000 | USD | 252000 | US | Presencial | US | Medio |
1449 | 2023 | Senior/Especialista | Tempo integral | Data Scientist | 139000 | USD | 139000 | US | Home office | US | Medio |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2938 | 2022 | Pleno | Tempo integral | Product Data Analyst | 140000 | USD | 140000 | US | Home office | US | Medio |
1362 | 2023 | Senior/Especialista | Tempo integral | Machine Learning Engineer | 163800 | USD | 163800 | US | Presencial | US | Medio |
2095 | 2022 | Pleno | Tempo integral | Machine Learning Scientist | 165000 | USD | 165000 | US | Presencial | US | Medio |
3376 | 2022 | Senior/Especialista | Tempo integral | Data Scientist | 210000 | USD | 210000 | US | Home office | US | Medio |
1376 | 2023 | Senior/Especialista | Tempo integral | Data Engineer | 226700 | USD | 226700 | US | Presencial | US | Medio |
500 rows × 11 columns
print(f'A média de salário da população é: {df_salarios["salario_em_dolares"].mean()}')
print(f'A média de salário da amostra aleatória 1 é: {df_amostra["salario_em_dolares"].mean()}')
print(f'A média de salário da amostra aleatória 2 é: {df_amostra2["salario_em_dolares"].mean()}')
A média de salário da população é: 137570.38988015978 A média de salário da amostra aleatória 1 é: 136439.28 A média de salário da amostra aleatória 2 é: 190619.94
Vemos que por uma amostragem errada, temos a amostra 2
nos devolvendo um valor diferente da realidade. Fazer uma inferência com essa amostra 2
, nos daria resultados errados. Já a amostra 1
tem um valor próximo da média de salário em dólares da população total. Então ter cuidado na hora da amostragem, com ela respeitando a motivação a ser estudada, faz toda a diferença.
O objetivo da Inferência Estatística é produzir afirmações sobre dada característica da população, na qual estamos interessados, a partir de informações colhidas de uma parte dessa população (amostra). Se tivéssemos a informação completa sobre a função de probabilidade, no caso discreto, ou sobre a função densidade de probabilidade, no caso contínuo, da variável em questão, não teríamos necessidade de escolher uma amostra. Toda a informação desejada seria obtida por meio da distribuição da variável, usando-se o que estudamos nos artigos anteriores.
Mas isso raramente acontece. Ou não temos nenhuma informação a respeito da variável, ou ela é apenas parcial. Podemos admitir em uma amostra que ela segue alguma distribuição, como a normal, mas podemos não ter os parâmetros que a caracterizam (média, variância). Podemos também ter esses parâmetros, mas não saber qual a forma da curva. Ou, na maioria dos casos, não ter nenhum nem outro. Então, o uso de uma amostra nos ajuda a forma uma opinião sobre o comportamento da variável (população) que estamos estudando.
Identificar e descrever a população estudada é fundamental em inferência estatística. Porém é mais comum dedicarmos mais tempo em descrever a amostra do que população, pois a partir da amostra que vamos inferir para a população. É imprescindível que se explicite claramente a população investigada. Vamos a um exemplo.
Exemplo:
Temos uma moeda. Indicando por $X$ o número de caras obtidas depois de lançar a moeda 50 vezes, sabemos que $X$ segue uma distribuição binomial, ou seja, $X \sim b(50, p)$.
Esse modelo é válido, admitindo-se ou não a “honestidade” da moeda, isto é, sendo ou não $p = \frac{1}{2}$. Lançada a moeda, vamos supor que tenham ocorrido 36 caras. Esse resultado traz a evidência de que a moeda é “honesta”?
Para tomarmos uma decisão, podemos partir do princípio de que a moeda não favorece nem cara nem coroa, isto é, $p = \frac{1}{2}$. Com essa informação e com o modelo binomial, podemos encontrar qual a probabilidade de se obterem 36 caras ou mais, vamos ver com Python.
stats.binom.pmf(36, 50, 0.5)
0.0008329742729351612
Temos que pra tirar 36 caras, temos a probabilidade de 0,8%. Esse resultado nos ajuda a tomar uma decisão sobre a honestidade da moeda. Suponha que a decisão foi rejeitar a “honestidade” da moeda.
Qual é a melhor estimativa para $p$, baseando-se no resultado observado?
Descrevemos aí os dois problemas básicos da Inferência Estatística: o primeiro é chamado teste de hipóteses, e o segundo, estimação.
As observações contidas em uma amostra serão mais informativas sobre uma população quanto mais conhecimento tivermos dessa mesma população.
Vamos imaginar uma sala onde encontra-se 30 professores de matemática. Se pegarmos uma amostra dessa sala, por exemplo 5 professores, e aplicarmos um teste básico de matemática, acreditamos que o resultado será representativo dessa população, já que é uma população é só de matemáticos. Porém devemos entender que nem sempre a escolha de uma amostra adequada é algo simples ou imediato. Vamos imaginar agora que uma determinada prefeitura fez uma obra em um bairro de seu município, onde esse bairro acabou tendo mais visibilidade e melhor qualidade de vida. Se formos fazer uma pesquisa de satisfação do governo municipal e pegarmos uma amostra desse bairro que teve a obra, teremos uma possível opinião favorável ao governo, tendo um resultado com um viés de seleção. Isto é, na amostra colhida, a proporção de pessoas que foram beneficiadas diretamente pelo projeto deverá ser maior do que de pessoas que não foram beneficiadas diretamente, fazendo com que o resultado não seja representativo de toda a população do município.
Escolher a amostra é algo tão crucial que existem modos para fazê-lo. Podemos dividir em três grandes grupos:
A amostragem aleatória simples(AAS) é a maneira mais fácil para selecionarmos uma amostra probabilística de uma população. Vamos imaginar que temos uma população de pessoas, com $N$ elementos. Podemos obter uma AAS dessa população através de uma numeração de toda a população e um seguinte sorteio por meio de uma tabela de números aleatórios ou, o mais usado, por meio de uso de algum software, que gerem números aleatórios.
Utilizando-se um procedimento aleatório, sorteia-se um elemento da população, sendo que a probabilidade de ser selecionado de todos é igual. Repete-se o procedimento até que sejam sorteadas as $n$ unidades da amostra. Podemos ter uma AAS com reposição, se for permitido que uma unidade possa ser sorteada mais de uma vez, e sem reposição, se a unidade sorteada for removida da população.
Do ponto de vista da quantidade de informação contida na amostra, amostra sem reposição é mais adequado. Contudo, a amostragem com reposição conduz a um tratamento teórico mais simples, pois ela implica que tenhamos independência entre as unidades selecionadas. Essa independência facilita o desenvolvimento das propriedades dos estimadores que serão considerados.
Na amostragem aleatória simples com reposição temos a situação onde extraímos um determinado elemento da amostra e devolvemos o mesmo pra amostra. Vamos a um exemplo simples:
Vamos imaginar que temos uma população com 100 elementos e queremos extrair uma amostra com 3 elementos. Logo nós temos
$$100 \cdot 100 \cdot 100 = 1.000.000$$Essa é a quantidade de possíveis amostras que nós temos. Isso se deve ao fato de tirarmos o primeiro elemento, que pode ser qualquer 1 dos 100 elementos e devolvê-lo para a população, então quando formos para a segunda extração, novamente teremos 100 possibilidades. Isso faz com que tenhamos um número de amostras com a seguinte possibilidade:
$$N^n = N \cdot N \cdot N \cdot N ... \cdot N$$Onde:
Consequentemente, a probabilidade de extrair qualquer elemento para a amostra é sempre a mesma, que é:
$$P = \frac{1}{N}$$Exemplo
Vamos retirar uma amostra aleatória com reposição dos nossos dados de salário.
# população
df_salarios['salario_em_dolares'][0:10]
0 85847 1 30000 2 25500 3 175000 4 120000 5 222200 6 136000 7 219000 8 141000 9 147100 Name: salario_em_dolares, dtype: int64
# amostra
df_salarios['salario_em_dolares'][0:10].sample(n=5, replace=True)
6 136000 2 25500 1 30000 3 175000 6 136000 Name: salario_em_dolares, dtype: int64
Passamos para nosso comando para ele pegar com reposição, o que ele faz, já que pega duas vezes o índice 6. Se quisermos gerar números aleatórios com esse mesmo princípio, podemos fazer isso com numpy. Nesse caso uso a geração de números é através da distribuição normal.
np.random.normal(df_salarios['salario_em_dolares'].mean(), df_salarios['salario_em_dolares'].std(), 5)
array([130994.18217351, 158378.26454968, 81615.39916725, 88755.86296217, -27703.77217867])
Na amostragem aleatória simples sem reposição temos a situação onde extraímos um determinado elemento da amostra e não devolvemos o mesmo pra amostra. Vamos a um exemplo:
Vamos imaginar que temos uma população com 100 elementos e queremos extrair uma amostra com 3 elementos. Logo nós temos
$$100 \cdot 99 \cdot 98 = 970.200$$Porém, nesse caso, a ordem não importa então se temos 3 elementos (ABC), temos que: $$ABC = ACB = BAC = BCA = CAB = CBA$$
Então, devemos retirar esses possíveis casos do nosso resultado final, então:
$$\frac{970.200}{6} = 161.700$$Logo temos que para uma população de 100, retirar uma amostra de 3, temos 161.700 possíveis amostras.
Então podemos definir a amostra aleatória sem reposição como:
$$C_{N,n} = C_N^n = {N \choose n} = \frac{N!}{(N-n)!n!}$$Onde:
A probabilidade de extrair os elementos para a AAS sem reposição são diferentes, pois variam a cada extração:
Vemos que nesse caso, a probabilidade das observações são dependentes. Porém, para casos de populações infinitas (na prática, muito grande) e a amostra pequena (quando comparada a população) a AAS sem reposição tem observações independentes, pois o tamanho da amostra faz com que a probabilidade não tenha uma mudança entre uma extração e outra. Vamos imaginar que agora temos uma popuação de 10.000.000.000 (10 bilhões) e queremos uma amostra de 3.
Vemos que como são números muito grandes a probabilidade não se altera, logo podemos considerar como independentes.
Exemplo
Vamos retirar uma amostra aleatória sem reposição dos nossos dados de salário.
# população
df_salarios['salario_em_dolares'][0:10]
0 85847 1 30000 2 25500 3 175000 4 120000 5 222200 6 136000 7 219000 8 141000 9 147100 Name: salario_em_dolares, dtype: int64
# amostra
df_salarios['salario_em_dolares'][0:10].sample(n=5, replace=False)
8 141000 0 85847 1 30000 2 25500 5 222200 Name: salario_em_dolares, dtype: int64
Um parâmetro é uma medida usada para descrever uma característica da população.
Obtida uma amostra, muitas vezes desejamos usá-la para produzir alguma característica específica. Por exemplo, se quisermos calcular a média da amostra $(X_1, X_2, ...,X3)$, esta será dada por:
$$\overline{X} = \frac{1}{X}\cdot (X_1 + X_2 + ... + X_n)$$As estatísticas mais comuns são:
Média da amostra: $\overline{X} = \frac{1}{X} \sum_{i=1}^{n}X_i$
Mediana da amostra: $md = q_2$
Variância da amostra: $S² = \frac{1}{n-1} \sum_{i=1}^{n}(X_i - \overline{X})$
Desvio padrão da amostra: $S = \sqrt{S²}$
Menor valor da amostra: $ X_{\text{min}} = \text{min}(X_1 + X_2 + ... + X_n) $
Maior valor da amostra: $ X_{\text{max}} = \text{max}(X_1 + X_2 + ... + X_n) $
Amplitude amostral: $W = X_{\text{max}} - X_{\text{min}}$
O grande problema da inferência estatística é fazer uma afirmação sobre os parâmetros da população através da amostra. Digamos que nossa afirmação deva ser feita sobre um parâmetro $\theta$ da população (por exemplo, a média, a variância ou qualquer outra medida). Decidimos que usaremos uma AAS de $n$ elementos sorteados dessa população. Nossa decisão será baseada na estatística $T$, que será uma função da amostra $(X_1, X_2, ..., X_n)$, ou seja, $T = f( X_1, X_2, ..., X_n)$. Colhida essa amostra, teremos observado um particular valor de $T$, digamos $t_0$, e baseados nesse valor é que faremos a afirmação sobre $\theta$, o parâmetro populacional.
A validade da nossa resposta seria melhor compreendida se soubéssemos o que acontece com a estatística $T$, quando retiramos todas as amostras de uma população conhecida segundo o plano amostral adotado. Isto é, qual a distribuição de $T$ quando $(X_1, X_2, ..., X_n)$ assume todos os valores possíveis. Essa distribuição é chamada de distribuição amostral da estatística $T$ e desempenha papel fundamental na teoria da inferência estatística.
Esquematicamente, teríamos:
Vamos a um exemplo:
Exemplo: Vamos voltar ao nosso exemplo da moeda, onde lançamos ela 50 vezes, usando como estatística $X =$ número de caras obtidas. Sabemos que a distribuição amostral é dada pelo modelo binomial $b(50, p)$, qualquer que seja $p = $ probabilidade de ocorrer cara num lançamento e sabemos que $0 < p < 1$. Se a quisermos julgar a honestidade da moeda, estaremos averigunado se $p = 0,5$. Nessas condições temos
$$P(X \geq 36| n = 50, p = 0,5)$$Vamos fazer esse cálculo usando o Python:
def fatorial(x):
valor = 1
for i in range(1, x+1):
valor *= i
return valor
# número de sucessos = k
# tamanho da amostra = n
# probabilidade de sucesso = p
def distribuicao_binomial(numero_sucessos, tamanho_amostra, probabilidade_sucesso):
possiveis_sequencias = (fatorial(tamanho_amostra)/(fatorial(numero_sucessos)
* fatorial(tamanho_amostra-numero_sucessos)))
nao_sucessos = 1 - probabilidade_sucesso
return (possiveis_sequencias * (probabilidade_sucesso**numero_sucessos)
* (nao_sucessos **(tamanho_amostra-numero_sucessos)))
lista = []
lista2 = []
lista3 = []
for i in range(1, 51):
lista.append(distribuicao_binomial(i, 50 , 0.5))
lista2.append(i)
if i >= 36:
lista3.append(distribuicao_binomial(i, 50 , 0.5))
with sns.axes_style("whitegrid"):
plt.figure(figsize=(14, 5))
plt.bar(lista2, lista)
plt.plot(lista2, lista)
plt.xlabel('Número de sucessos')
plt.ylabel('Probabilidade')
plt.title('Distribuição Binomial')
plt.show()
sum(lista3)
0.0013010857283610733
Logo temos que pra termos um resultado igual ou maior que 36 caras, a probabilidade é de $0,13\%$
Portanto, caso a moeda seja honesta, em 50 lançamentos, a probabilidade de se obterem 36 ou mais caras é da ordem de 1 por 1.000. Ou seja, se a moeda fosse honesta, o resultado observado (36 caras) seria muito pouco provável, evidenciando que $p > 0,5$.
Vamos ver com um valor de $p > 0,72$
lista = []
lista2 = []
lista3 = []
for i in range(1, 51):
lista.append(distribuicao_binomial(i, 50 , 0.72))
lista2.append(i)
with sns.axes_style("whitegrid"):
plt.figure(figsize=(14, 5))
plt.bar(lista2, lista)
plt.plot(lista2, lista)
plt.xlabel('Número de sucessos')
plt.ylabel('Probabilidade')
plt.title('Distribuição Binomial')
plt.show()
Logo, para termos uma moeda que sai cara em 36 resultados, temos que ter uma probabilidade de $0,72$, o que indica uma moeda viciada.
Vamos ver agora a distribuição amostral da estatística $\overline{X}$, a média da amostra. Vamos considerar uma população identificada pela variável $X$, cujos parâmetros média populacional $\mu = E(X)$ e variância populacional $\sigma^2 = \text{Var(X)}$ são conhecidos.
Vamos retirar todas as possíveis AAS de tamanho $n$ dessa população, e para cada uma calcular a média $\overline{X}$. Em seguida, vamos considerar a distribuição amostral e estudar suas propriedades.
Vamos há um exemplo:
Exemplo: Vamos voltar ao nosso caso da moeda, porém agora teremos 3 eventos com cada um lançando 5 vezes a moeda. Vamos considerar 1 para cara e 0 para coroa
Logo temos uma média amostral de:
$$\frac{0,6 + 0,4 + 0,6}{3} = 0,5333$$Sabendo que só temos duas faces possíveis, e tendo a moeda como honesta, logo temos 50% de probabilidade para cada face, esperamos que a média amostral do experimento seja um valor em torno de 0,5. Como mostramos acima, nosso experimento de um valor parecido. Então, podemos afirmar que: a esperança da média amostra é igual à média populacional.
$$E(\overline{X}) = \mu$$Já a variância mostral será a razão entre a variância populacional e o tamanho da amostra:
$$\text{Var}(\overline{X}) = \frac{\sigma^2}{n}$$Vamos ver um exemplo.
import numpy
import matplotlib.pyplot as plt
num = [1, 10, 20, 30, 40, 50]
media = []
for j in num:
numpy.random.seed(42)
x = [numpy.mean(
numpy.random.randint(
0, 10, j)) for i in range(1000)]
media.append(x)
k = 0
fig, ax = plt.subplots(2, 3, figsize =(14, 8))
for i in range(0, 2):
for j in range(0, 3):
ax[i, j].hist(media[k], bins=50, density = True)
ax[i, j].set_title(label = num[k])
k = k + 1
plt.show()
Vemos que quanto maior o nosso $n$ (tamanho da amostra), mais o formato da curva tende a uma normal.
Por definição temos:
Definição:
Para amostras aleatórias simples $(X_1, X_2 ..., X_n)$, retiradas de uma população com média $\mu$ e variância $\sigma²$ finita, a distribuição amostral da média $\overline{X}$ aproxima-se, para $n$ grande, de uma distribuição normal, com média $\mu$ e variância $\frac{\sigma²}{n}$.
Logo, temos:
Outra forma de apresentar o teorema do limite central é:
Se $(X_1, X_2 ..., X_n)$ for uma amostra aleatória simples da população $X$, com média $\mu$ e variância $\sigma²$ finita, e $X = \frac{(X_1, X_2 ..., X_n)}{n}$, então
$$Z = \frac{\overline{X} - \mu}{\sigma/\sqrt{n}} \sim N(0, 1)$$Basta notar que se usou a transformação usual de reduzir a distribuição de $\overline{X}$ a uma normal padrão. O TLC afirma que $\overline{X}$ aproxima-se de uma normal quando $n$ tende para o infinito, e a rapidez dessa convergência depende da distribuição da população Se a população original tem uma distribuição próxima da normal, a convergência é rápida; se a população original se afasta muito de uma normal, a convergência é mais lenta, ou seja, necessitamos de uma amostra maior para que $\overline{X}$ tenha uma distribuição aproximadamente normal. Para amostras maiores que 30 ou 50 elementos, a aproximação pode ser considerada boa.
Vamos ver um exemplo para entender de forma mais clara:
Exemplo:
A máquina de empacotar um determinado produto o faz segundo uma distribuição normal, com média $\mu$ e desvio padrão 10 g.
Resolução:
Numa tabela de distribuição normal padrão, normalmente os valores são dados por $P(0 < Z < Z_c)$, onde essa probabilidade será os valores contido nesse intervalo, como nós queremos a probabilidade acima desse intervalo, podemos escrever de tal forma: $0,5 - $P(0 < Z < Z_c)$, pegando assim, a probabilidade posterior ao intervalo.
$$0,5 - P(0 < Z < \frac{500 - \mu}{10}) = 0,1$$$$P(0 < Z < \frac{500 - \mu}{10}) = - 0,4$$Procurando em uma tabela de distribuição normal padrão (pode ser vista uma ao longo do artigo 5), encontramos que o valor que dá probabilidade 0,4 é 1,28
$$\frac{500 - \mu}{10} = 1,28 = 500 - \mu = -12,8$$$$\mu = 512,8$$$P(\overline{X} < 495)$ e $P(\overline{X} > 520)$
Logo, a soma dessas duas probabilidades, deve dá o que queremos, então vamos achar cada uma e depois somar.
$$P(\overline{X} < 495) = P(Z < \frac{495 - 512,8}{10/\sqrt{2})} = 0,5 - P(0 < Z < -3,56) = 0,5 - 0,49981 = 0,00019$$$$P(\overline{X} > 520) = P(Z < \frac{520 - 512,8}{10/\sqrt{2})} = 0,5 - P(0 < Z < 1,44) = 0,5 - 0,4250 = 0,075$$Então:
$$0,00019 + 0,075 = 0,0752 = 7,52\%$$Temos a probabilidade de $7,52\%$ de paradas desnecessárias.
Vamos considerar uma população em que a proporção de elementos portadores de certa característica é $p$. Logo, podemos definir uma variável aleatória $X$, da seguinte maneira:
$$x = \begin{cases} 1, \text{se o indivíduo estudado for portador da característica}\\ 0, \text{se o indivíduo estudado não for portador da característica}\\ \end{cases}$$Um elemento qualquer da população $X$ pode apresentar a característica estudada, o que chamamos de sucesso $(X = 1)$, ou não, o que chamamos de fracasso $(X = 0)$. A probabilidade de sucesso é $p$ e a probabilidade de fracasso é $q = 1 − p$. Assim, essa população apresenta uma distribuição de Bernoulli, com parâmetro $p$.
Vamos retirar uma AAS dessa população, e indicando por $X_n$ o total de indivíduos portadores da característica na amostra, já vimos que:
$$X_n \sim b(n, p)$$Se retirarmos uma AAS dessa população, que chamaremos de $X$, não sabemos proporção populacional, então precisamos estimá-la a partir da proporção de sucessos encontrada na amostra, denotada por $\hat{p}$. Considerando que cada observação $X_i$ da amostra será $X_i = 0$ ou $X_i = 1$ (como para a população), então a proporção de sucessos na amostra pode ser calculada pela razão entre a soma dos valores observados e o tamanho da amostra:
$$\hat{p} = \frac{\sum_{i=1}^n X_i}{n}$$Porém, como possuímos valores $X_i = 0$ para os fracassos, basta apenas somar o número de sucessos ($X_i = 1$). Chamaremos os valores que são portadores da característica da amostra de $Y_n$, então teremos:
$$\hat{p} = \frac{Y_n}{n}$$Logo,
$$P(Y_n = k) = P(\frac{Y_n}{n} = \frac{k}{n}) = P(\hat{p} = \frac{k}{n})$$Ou seja, a distribuição amostral de $\hat{p}$ é obtida da distribuição $Y_n$.
Pelo teorema do limite central, uma distribuição amostral grande tende a uma distribuição normal, vamos ver nesse caso.
Temos inicialmente que:
$$Y_n = X_1 + X_2 + X_3 + X_4 + ... + X_n$$onde cada $X_i$ tem distribuição de Bernoulli, com média $\mu = p$ e variância $\sigma² = p(1 - p)$. Podemos escrever como
$$Y_n = n\cdot \overline{X}$$pelo teorema do limite central, $\overline{X}$ terá distribuição normal, com $\mu = p$ e $\sigma² = \frac{p(1-p)}{n}$, ou seja:
$$\overline{X} \sim N \Big(p, \frac{p(1-p)}{n}\Big)$$Então
$$Y_n \sim N (np, np(1-p))$$Sendo $\overline{X}$ a variável $\hat{p}$, temos para a distribuição amostral p:
$$\hat{p} \sim N \Big(p, \frac{p(1-p)}{n}\Big)$$Para facilitar e saber quando $n$ é grande, basta seguir a seguinte regra
Então num caso que $p$ seja 0.5, uma amostra de 10 ou mais já se justifica aproximar pela normal.
Vamos há um exemplo para um melhor entendimento.
Exemplo:
Temos que $p = 0,1$, $n = 20$ e $\hat{p} = 0,15$
$$P(|\hat{p} - p| > 0,05)$$Vamos achar a variância:
$$\text{Var}(\hat{p}) = \frac{(0,1) \cdot (0,9)}{20} = 0,0045$$Com a variância achamos a probabilidade:
$$P(0 < Z < \frac{0,05}{\sqrt{0,0045}}) = P(0 < Z < 0,75)$$Vendo em uma tabela de distribuição normal padrão temos que quando $Z = 0,75$ o valor é $0,27337$
$$P(Z > 0,75) = 0,5 - 0,27337 = 0,22663$$Então temos que a probabilidade de uma parada desnecessária de $22,66\%$
Anteriormente, fizemos suposições sobre o tamanho da amostra, tendo exemplos com valors conhecidos e fixos, porém nem sempre saberemos qual valor usar. Como vamos conseguir garantir que a escolha de tamanho da amostra que escolhemos é o acertado. Podemos, em certas ocasiões, querer determinar o tamanho da amostra a ser escolhida de uma população, de modo a obter um erro de estimação previamente estipulado, com determinado grau de confiança.
Para achar esse tamanho, basta determinarmos qual grau de confiança e erro de estimação queremos.
Para distribuições amostrais da média temos a fórmula:
$$n = \frac{\sigma² z_{\gamma}²}{\epsilon²}$$Para distribuições amostrais de uma proporção temos a fórmula:
$$n = \frac{z_{\gamma}²}{4\epsilon²}$$Se tivermos alguma informação sobre a proporção populacional ($p$) ou pudermos estimar, a fórmula é:
$$n = \frac{z_{\gamma}²p(1-p)}{\epsilon²}$$Onde:
Note que na fórmula para a média, temos a variância populacional, que não conhecemos. Então devemos ter alguma pequena amostra para podermos estimar a variância.
Exemplo: Temos uma amostra $n= 20$ de uma população. Essa amostra nos forneceu valores $\overline{X} = 10$ e $S² = 12$. Fixando o erro em $0,5$ e nível de confiança de $0,95$, temos:
$$n = \frac{12² \cdot 1,96²}{0,5²} \approx 2.213$$Exemplo:
Uma pesquisa sobre um determinado produto, estima que no mínimo 80% das pessoas entrevistas preferirão esse produto ao do concorrente. Querendo um erro amostral menor que 3% e com nível de confiança de 95%, temos:
$$n = \frac{(1,96²)(0,8)(0,2)}{(0,03)²} \approx 683$$