APS 7

Gabriel Heusi Pereira Bueno de Camargo


In [ ]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import statsmodels.api as sm
from scipy import stats

%matplotlib inline

Questão 1

Você foi contratado para avaliar um novo modelo de taco de golfe. O fabricante quer saber se há evidência de que o coeficiente de restituição médio dos tacos excede 0.82 com nível de significância α=0.05. Em um lançador padronizado de bolas de golfe, foram testados 15 tacos e os coeficientes de restituição medidos foram: 0.8411, 0.8191, 0.8182, 0.8125, 0.8580, 0.8532, 0.8483, 0.8276, 0.8042, 0.8730, 0.8282, 0.8359, 0.8750, 0.7983, 0.8660 Sabe-se por experiência anterior que o coeficiente de restituição tem distribuição normal, mas você não sabe o σ. Pede-se:

a) Calcule ¯x e s (lembre-se dos graus de liberdade)


In [28]:
amostra = [0.8411, 0.8191, 0.8182, 0.8125, 0.8580, 0.8532, 0.8483, 0.8276, 0.8042, 0.8730, 0.8282, 0.8359, 0.8750, 0.7983, 0.8660]
x_ = np.sum(amostra)/len(amostra)
s = np.std(amostra, ddof=1)
print("A média da barra é : {0}".format(x_))
print("S é igual : {0}".format(s))


A média da barra é : 0.83724
S é igual : 0.024557099642611345

c) Calcule a estatística t de teste para a t padrão usando a relação t_o bs=(¯(x_obs )-μ_0)/(s/√n)


In [25]:
mi0 = 0.82
tam = len(amostra)
Tobservado = (x_ - mi0)/(s/sqrt(tam))
print(Tobservado)


2.71897878253

d) Calcule o t_crítico. Compare t_obs com t_crítico e escreva sua conclusão para o teste de hipóteses


In [17]:
alpha = 0.05
Tc = stats.t.ppf(1-alpha, loc = 0, df = tam-1)
Tc


Out[17]:
1.7613101357748562

e) Calcule o valor p de t_obs . Compare o valor p com o α . Verifique se sua conclusão do item (d) continua válida.


In [19]:
VP = 1 - (stats.t.cdf(Tobservado, loc=0,df = tam-1))
VP


Out[19]:
0.0083133686815108909

Sabendo que alpha é igual a 0.05, ou seja 5% e com o cálculo de valor P, igual a 0.83%, a hipótese pode ser rejeitada, afinal Valor P se mostra menor que alpha.

Questão 2

Em um artigo da Sociedade Americana de Engenharia Civil (ASCE Journal of Energy Engineering, Vol. 125, 1999, pp. 59-75) foi publicado um estudo sobre uso concreto aerado autoclavado como material de construção. Foram testadas 5 amostras deste material numa estrutura, e a média da temperatura interior (Celsius ) foi 23.01, 22.22, 22.04, 22.62, and 22.59. (Montgomery 4-54)

a) Considerando um α=0.05, usando a abordagem de valor p, teste as hipóteses:

H_0: μ=22.5 versus H_1: μ≠22.5


In [35]:
amostra2 = [23.01, 22.22, 22.04, 22.62, 22.59]
tamanho = len(amostra2)
Mi0 = 22.5
X_ = np.sum(amostra2)/tamanho
S = np.std(amostra2, ddof=1)
TObservado2 = (X_ - Mi0)/(S/sqrt(tamanho))
print("T Observado é igual a: ")
print(TObservado2)


T Observado é igual a: 
-0.0236417520298

b) Encontre os valores críticos e a região de rejeição


In [32]:
alpha = 0.05
maximo = stats.t.ppf(1-(alpha)/2, loc = 0, df = tamanho-1)
print(maximo)
minimo = stats.t.ppf(alpha/2, loc = 0, df = tamanho-1)
print(minimo)


2.7764451052
-2.7764451052

Dessa maneira conclui-se que o T observado está entre os valores de T máximo e mínimo, e portanto, pode se rejeitar a hipótese.

c) Um teste t pode ser usado se a distribuição da variável original for normal. Faça um QQ-Plot para verificar se a amostra é normal, ou seja, se poderíamos ter feito o teste t

Dica: Use stats.probplot(dados, dist='norm', plot=plt) , uma função que faz o QQ Plot de forma imediata.


In [33]:
stats.probplot(amostra2, dist='norm', plot=plt)
plt.show()


Questão 3

Algumas peças de polímero produzidas por uma máquina foram submetidas a um ensaio de tração. As resistências medidas foram (em Kg/cm2): [ 129.26, 204.49, 116.89, 106.4 , 95.3 , 123.35, 92.3 , 300.02, 264.34, 168.27, 80.02, 117.96, 117.73, 370.47, 462.59, 92.58, 258.52, 82.59] Não sabemos nada sobre o formato da distribuição da população. Pede-se:

a) Crie um intervalo percentil bootstrap de 95% para a média amostral. Forneça o limite inferior e o limite superior.

In [34]:
al = 0.05
amostra3 = [ 129.26, 204.49, 116.89, 106.4 , 95.3 , 123.35, 92.3 , 300.02, 264.34, 168.27, 80.02, 117.96, 117.73, 370.47, 462.59, 92.58, 258.52, 82.59]
n = len(amostra3)
s = np.std(amostra3, ddof=1)
m_ = np.mean(amostra3)
l = []
for i in range(10000):
    a = np.random.choice(amostra3,size = n, replace = True).mean()
    l.append(a)
print("Limite Inferior: ")
print(pd.Series(l).quantile(al/2))
print("Limite Superior: ")
print(pd.Series(l).quantile(1-(al/2)))


Limite Inferior: 
131.3082638888889
Limite Superior: 
229.46084722222224
b) Crie um intervalo percentil bootstrap de 95% para o desvio padrão amostral

In [9]:
from math import sqrt
v = []
for i in range(10000):
    b = np.random.choice(amostra3,size = n, replace = True)
    var_amostra3 = sqrt(np.var(b))
    v.append(var_amostra3)
    
print(pd.Series(v).quantile(al/2))
print(pd.Series(v).quantile(1-(al/2)))


58.0039507006129
140.12640163102694