#valores 
vprojeto = 1
vprova = 1.5**2
c = 0.675

#média final = 1/2 * média de projetos + 1/2 * média das provas
medf = (1/2)*7 + (1/2)*4
despadf = (varf)**(0.5)
varf = (((1/2)**2)*vprova) + (((1/2)**2)*vprojeto) + 2*(0.5)**2*c


print("Média final = {0}".format(medf))
print("Desvio padrão = {0}".format(despadf))

x = 1-stats.norm.cdf(5,loc = medf, scale = despadf)
print("A probabilidade de um aluno ser aprovado é de {0}".format(x*100))

"""
Explanation: 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\$ 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) novo preço médio é 60,00 reais e o desvio padrão continua o mesmo, 15,00 reais.
b) novo preço médio é 67,50 reais e o desvio padrão e o desvio padrão é igual a [(1.5)^2]*25 que é igual a 56.25
c) preço esperado é de 45,00 reais cada e o desvio padrão é [(10)^2]*25 = 2500 , já que os preços de um produto em uma mesma loga é o mesmo. Como serão comprados 10 multímetros, o preço total final esperado é de 450,00 reais.
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.
End of explanation
"""


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

%matplotlib inline

houses = pd.read_csv("casas.csv")

houses.head()

houses['price'].describe() 

"""
Explanation: 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
End of explanation
"""


#a)
x = houses.sqft_lot
stats.probplot(x, dist='norm', plot=plt)
plt.show()

#b) Um teste de hipóteses
#c) Sim. Não.

#d)
am = []
for i in houses.sqft_lot:
    am.append(i)
    
alpha = 0.05
n = len(am)
s = np.std(am, ddof=1)
m_ = np.mean(am)
lista = []
for i in range(10000):
    a = np.random.choice(am,size = n, replace = True).mean()
    lista.append(a)
a

#e)
print(pd.Series(lista).quantile(alpha/2))
print(pd.Series(lista).quantile(1-(alpha/2)))

"""
Explanation: 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
End of explanation
"""


y = houses.price
x = houses["sqft_living"]
x = sm.add_constant(x, prepend=True)
res = sm.OLS(y,x).fit()
res.summary()

c = 4.928e4
s = 247.0810
print("B0 = ",c)
print("B1 = ",s)

"""
Explanation: 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}$ ?
End of explanation
"""


print("R^2 é oo grau de influência entre duas variáveis")
print("P>|t| é a probabilidade de duas variáveis não serem dependentes")

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


#c) 

print("y = {0} + {1} x ".format(c,s))

#d)

houses.plot.scatter("sqft_living","price")
y = 49280 + 247.081*houses["sqft_living"]
plt.plot(houses['sqft_living'],y,'green')

"""
Explanation: c). Escreva a equação que expressa price em função de sqft_living.
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
End of explanation
"""


#a) O grau de influência entre uma variável e outra.

#b)

y = houses['price']
x = houses.loc[:, ['sqft_lot', 'sqft_basement']]
x = sm.add_constant(x, prepend=True)
res = sm.OLS(y,x).fit()
res.summary()

c = 5.237e05
s = 2.7668	
B2 = 68.6891
y = c + s*houses["sqft_lot"] + B2*houses["sqft_basement"]
print(y)

"""
Explanation: 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.
python
Y = houses['price']
X = houses.loc[:, ['sqft_lot', 'sqft_basement']]
Pede-se:
a). Repita a intepretação dos valores $P > |t|$ e Prob (F-statistic) porém com duas variáveis.
O que os valores encontrados implicam para a regressão?
b). Escreva a função que foi encontrada pela regressão ( price em função de  sqft_lot  e sqft_basement)
End of explanation
"""


