APS 8

Entrega: 28/11 ao final do atendimento (17:15)

Questão 1

Assuma que $X$ seja uma variável aleatória contínua que descreve o preço de um multímetro digital em uma loja brasileira qualquer. Ainda, assuma que o preço médio seja igual a $R\$ 45,00$ e o desvio padrão, igual a $R\$45,00$ e o desvio padrão, igual a $R\$ 25,00$.

Em todos os itens a seguir, deixe claro como foi construído o novo preço em função de $X$.

Deixe todas as contas claramente indicadas.

a) Se todas as lojas brasileiras que vendem multímetro resolvessem acrescentar 15 reais no preço de cada um dos seus respectivos multímetros. Nesse caso, qual o novo preço médio do multímetro e respectivo desvio padrão?

b) Se todas as lojas brasileiras que vendem multímetro resolvessem aumentar o preço de cada um dos seus respectivos multímetros em $150\%$. Nesse caso, qual o novo preço médio do multímetro e respectivo desvio padrão?

c) Se você precisa comprar dez multímetros e deseja comprá-los todos iguais e na mesma loja. Nesse caso, qual o gasto total esperado e respectivo desvio padrão?

Respostas

a) Nesse caso a diferença se observa apenas no preço médio, que nesse caso aumenta também em 15,00 reais, de acordo com a seguinte fórmula : E(X+d) = 45 + 15 = 60, ou seja X o preço anterior, d o acréscimo e o novo preço médio é de 60,00 reais. Já o desvio padrão não se altera nesse caso.

b) Como dessa forma há uma alteração de maneira "multiplicativa", segue-se a seguinte lógica: E(cX+d) = (45 x 1,5) + 45 = 112,5 reias, enquanto o novo desvio padrão será a raiz de, Var(cX+d) = 2,5^2 x 25^2 = 62,5 reais é o novo desvio padrão.

c) Partindo-se do fato de que o preço irá se repetir, afinal serão escolhas iguais, o gasto total esperado é a média multiplicada pelo número de produtos comprados, portanto 10x45 = 450 reais, e o desvio padrão da mesma maneira, 25 x 10 = 250 reais de desvio.

Questão 2

Assuma que, na disciplina Ciência dos dados, a nota final da disciplina seja função da nota média das provas $X$ e da nota média dos projetos $Y$. Assuma ainda que ambas as notas tem mesmo peso na construção da nota final na disciplina.

Considerando que a nota média dos alunos nas provas segue uma normal com média 4 e desvio padrão igual a 1,5, ou seja $ X \sim N(4 ; 2,25)$ . E que a nota média dos alunos nos projetos segue uma normal com média 7 e desvio padrão igual a 1, ou seja, $Y\sim N(7 ; 1)$.

Na prática, é razoável acreditar que haja uma associação positiva entre essas notas. Aqui, considere que a covariância entre essas notas médias é igual a $0,675$ .

Em todos os itens a seguir, deixe todas as contas claramente indicadas.

a) Calcule a nota média final e respectivo desvio padrão.

b) Considere que a nota final na disciplina Ciência dos dados segue uma distribuição com média e variância obtidas no item anterior. Calcule a probabilidade de um aluno ser aprovado na disciplina.

Respostas

a) Pautando-se nas propriedades de esperança e variância, calcula-se a nota média final por E(aX+bY) = aE(X) + bE(Y) = 5.5, afinal ambas tem o mesmo peso (50%) e "a" nota 4, e "b" nota 7. Já para o desvio padrão, deve se fazer o cálculo a partir da variância e então tirar sua raiz, sendo que, Var(aX+bY) = (0.5^2)x2.25 + (0.5^2)x1 + (2x0.5x0.5)x0.675 = 1.15, portanto o desvio padrão é igual 1.07.


In [57]:
from scipy import stats
Prob = 1-(stats.norm.cdf(5,loc=5.5,scale=1.07))
Prob


Out[57]:
0.67985369470424972

b)A partir do cálculo da cdf, sabe-se que a probabilidade de um aluno ser aprovado nessa disciplina é igual a 67,98%.

Dataset para as questões de programação

Vamos trabalhar com o problema House Sales in King County, do Kaggle https://www.kaggle.com/harlfoxem/housesalesprediction


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

%matplotlib inline

In [59]:
houses = pd.read_csv("houses.csv")

In [60]:
houses.head()


Out[60]:
price bedrooms bathrooms sqft_living sqft_lot floors sqft_basement grade
0 540000.0 4 2.50 2600 9935 2.0 0 8
1 815000.0 3 3.75 2780 5002 2.0 0 10
2 279000.0 3 2.25 2070 7800 1.0 900 7
3 360000.0 2 2.50 1233 1244 2.0 270 7
4 309000.0 3 2.50 1990 3614 2.0 0 7

Q3

O dataset fornecido é uma amostra extraída de um dataset maior. A amostra pode ter vindo de uma população com média de sqft_lot de 8250?

Passos:

a) Verifique que sqft_lot não é normal.

Dica: na APS 7 foi feito um teste de normalidade. Repita o mesmo processo

b) Se sqft_lot fosse normal, que tipo de teste poderíamos ter usado?

c) Saberíamos $\mu$ para montar o t? Saberíamos $\sigma$?

Bootstrap:

d) Monte um intervalo percentil boostrap de $95\%$.

e) Informe os valores inferiores e superiores

f) Conclua o teste

Respostas


In [61]:
tamanho = houses.sqft_lot
stats.probplot(tamanho, dist='norm', plot=plt)
plt.show()


Pela distribuição dos pontos ao longo da reta, pode-se afirmar que não se trata de uma normal.

Caso a distribuição se tratasse de maneira normal, então poderia ser realizado um teste de hipótese para análise desta distribuição.

O valor de σ não seria conhecido, apesar de ser possível encontrar um valor aproximado deste, por outro lado o valor de μ seria conhecido e poderia ser prontamente utilizado para avaliação da distribuição normal.


In [62]:
am = []
for i in houses.sqft_lot:
    am.append(i)
al = 0.05
n = len(am)
s = np.std(am, ddof=1)
m_ = np.mean(am)
l = []
for i in range(10000):
    #valor aleatório para toda a porcentagem que se deseja analisar o bootsrap
    a = np.random.choice(am,size = n, replace = True).mean()
    l.append(a)
#Valores Máximo e Mínimo do boostrap criado
print("Valor mínimo igual a: ")
print(pd.Series(l).quantile(al/2))
print("Valor Máximo igual a: ")
print(pd.Series(l).quantile(1-(al/2)))


Valor mínimo igual a: 
6926.072307692307
Valor Máximo igual a: 
14623.161538461538

Q4

Faça uma regressão que usa sqft_living como variável explicativa e price como resultado:

a). De acordo com a notação que usamos em aula, quem é $\hat{\beta_0}$ e quem é $\hat{\beta_1}$ ?


In [63]:
hp = houses.price
hl = houses["sqft_living"]
hl = sm.add_constant(hl, prepend=True)
res = sm.OLS(hp,hl).fit()
res.summary()


Out[63]:
OLS Regression Results
Dep. Variable: price R-squared: 0.472
Model: OLS Adj. R-squared: 0.463
Method: Least Squares F-statistic: 56.21
Date: Tue, 28 Nov 2017 Prob (F-statistic): 2.70e-10
Time: 17:14:00 Log-Likelihood: -892.24
No. Observations: 65 AIC: 1788.
Df Residuals: 63 BIC: 1793.
Df Model: 1
Covariance Type: nonrobust
coef std err t P>|t| [95.0% Conf. Int.]
const 4.928e+04 7.44e+04 0.662 0.510 -9.95e+04 1.98e+05
sqft_living 247.0810 32.954 7.498 0.000 181.227 312.935
Omnibus: 12.716 Durbin-Watson: 1.643
Prob(Omnibus): 0.002 Jarque-Bera (JB): 13.432
Skew: 0.973 Prob(JB): 0.00121
Kurtosis: 4.081 Cond. No. 6.03e+03

A partir da tabela sabe-se os valor de beta0 e beta1 e portanto:


In [64]:
B0 = res.params.const
B1 = res.params.sqft_living
print("B0 é igual a: ")
print(B0)
print("B1 é igual a: ")
print(B1)


B0 é igual a: 
49281.4580204
B1 é igual a: 
247.08099401

b). Interprete o $R^2$ , os valores $P > |t|$ e também Prob (F-statistic).

O valor de R² é basicamente a demonstração numérica de quanto o modelo é capaz de os valores, ou seja uma espécie de ajuste do mesmo. Enquanto o P>|t|é apenas o calculo da probabilidade de que não existe relação ou influência entre variáveis determinadas.

c) Escreva a equação que expressa price em função de sqft_living.


In [65]:
print("House.price = {0} + {1} hl, sendo hp o preço e hl o sqft_living, ou seja tamanho do interior habitável da casa".format(B0,B1))


House.price = 49281.458020355116 + 247.08099401043833 hl, sendo hp o preço e hl o sqft_living, ou seja tamanho do interior habitável da casa

d) Faça um gráfico de dispersão de price em função de sqft_living, plote a equação que encontrou no item anterior no mesmo gráfico


In [66]:
houses.plot.scatter("sqft_living","price")
hp = 49281.45802 + 247.080994*houses["sqft_living"]
plt.plot(houses['sqft_living'],hp,"green")


Out[66]:
[<matplotlib.lines.Line2D at 0x2cf6f48c9e8>]

Q5

Faça agora uma regressão múltipla que tenta prever price (variável explicada) em função das variáveis sqft_lot e sqft_basement (explicativa).

Dica: inclua as duas colunas dentro de uma variável X, o restante não se altera em relação à regressão simples.

Y = houses['price']
X = houses.loc[:, ['sqft_lot', 'sqft_basement']]

Pede-se:

a) Repita a intepretação dos valores P>|t|P>|t| e Prob (F-statistic) porém com duas variáveis. O que os valores encontrados implicam para a regressão?

Esses valores, P>|t|P>|t| e Prob (F-statistic) demonstram ideia de relação que entre para as duas variáveis.

b) Escreva a função que foi encontrada pela regressão ( price em função de sqft_lot e sqft_basement)


In [67]:
a2 = houses['price']
hloc = houses.loc[:, ['sqft_lot', 'sqft_basement']]
hloc = sm.add_constant(hloc, prepend=True)
resultados = sm.OLS(a2,hloc).fit()
resultados.summary()


Out[67]:
OLS Regression Results
Dep. Variable: price R-squared: 0.029
Model: OLS Adj. R-squared: -0.003
Method: Least Squares F-statistic: 0.9115
Date: Tue, 28 Nov 2017 Prob (F-statistic): 0.407
Time: 17:14:01 Log-Likelihood: -912.03
No. Observations: 65 AIC: 1830.
Df Residuals: 62 BIC: 1837.
Df Model: 2
Covariance Type: nonrobust
coef std err t P>|t| [95.0% Conf. Int.]
const 5.237e+05 5.01e+04 10.462 0.000 4.24e+05 6.24e+05
sqft_lot 2.7668 2.383 1.161 0.250 -1.997 7.531
sqft_basement 68.6891 101.802 0.675 0.502 -134.810 272.188
Omnibus: 24.116 Durbin-Watson: 1.833
Prob(Omnibus): 0.000 Jarque-Bera (JB): 38.221
Skew: 1.369 Prob(JB): 5.02e-09
Kurtosis: 5.572 Cond. No. 2.50e+04