import numpy as np
from sklearn.preprocessing import normalize
from sklearn.preprocessing import StandardScaler
import pandas as pd
import matplotlib.pyplot as plt
import scipy.stats as stats
%matplotlib inline
ls
capt4.ipynb inferencia.ipynb pesos-alturas.csv capt9.ipynb inflacao.csv Primeiro.ipynb dolar.csv LinearRegression.ipynb Segundo.ipynb ds-env.yml mod-preditivo.csv Untitled.ipynb inferencia (cópia).ipynb mod-preditivo-original.csv
Taxa de desemprego aberto na RMSP Frequência: Mensal de 1984.12 até 2017.08 Fonte: Fundação Sistema Estadual de Análise de Dados, Pesquisa de Emprego e Desemprego (Seade/PED) Unidade: (%) Comentário: Quadro: Taxas de desemprego, por tipo - Região Metropolitana de São Paulo, município de São Paulo e demais municípios da Região Metropolitana de São Paulo. In: http://www.seade.gov.br . Obs.: Região Metropolitana de São Paulo (RMSP). Não inclui desemprego oculto (trabalho precário e desemprego por desalento). Atualizado em: 02/10/2017
Taxa de câmbio comercial para compra: real (R$) / dólar americano (US$) - média Frequência: Mensal de 1953.01 até 2017.10 Fonte: Banco Central do Brasil, Boletim, Seção Balanço de Pagamentos (Bacen / Boletim / BP) Unidade: R$ Comentário: Quadro: Taxas de câmbio do real. Obs.: Cotações para contabilidade. Atualizado em: 01/11/2017
dolar = pd.read_csv('dolar.csv')
desemprego = pd.read_csv('desemprego.csv')
dolar.head()
Periodo | Dolar | |
---|---|---|
0 | 2007.08 | 1.9652 |
1 | 2007.09 | 1.8988 |
2 | 2007.10 | 1.8002 |
3 | 2007.11 | 1.7691 |
4 | 2007.12 | 1.7852 |
dolar.describe()
Periodo | Dolar | |
---|---|---|
count | 121.000000 | 121.000000 |
mean | 2012.189091 | 96.254918 |
std | 2.943821 | 415.140965 |
min | 2007.080000 | 1.563100 |
25% | 2010.020000 | 1.789014 |
50% | 2012.080000 | 2.188057 |
75% | 2015.020000 | 3.135572 |
max | 2017.080000 | 2313.000000 |
dolar.loc[dolar.Dolar > 1000, ['Dolar']] = dolar['Dolar'] / 1000
dolar.describe()
Periodo | Dolar | |
---|---|---|
count | 121.000000 | 121.000000 |
mean | 2012.189091 | 2.324150 |
std | 2.943821 | 0.682049 |
min | 2007.080000 | 1.563100 |
25% | 2010.020000 | 1.779000 |
50% | 2012.080000 | 2.060100 |
75% | 2015.020000 | 2.815839 |
max | 2017.080000 | 4.051715 |
desemprego.head()
Periodo | Desemprego | |
---|---|---|
0 | 2007.08 | 10.4 |
1 | 2007.09 | 10.5 |
2 | 2007.10 | 10.0 |
3 | 2007.11 | 10.0 |
4 | 2007.12 | 9.3 |
desemprego.describe()
Periodo | Desemprego | |
---|---|---|
count | 121.000000 | 121.000000 |
mean | 2012.189091 | 10.012397 |
std | 2.943821 | 2.200325 |
min | 2007.080000 | 6.900000 |
25% | 2010.020000 | 8.500000 |
50% | 2012.080000 | 9.400000 |
75% | 2015.020000 | 10.700000 |
max | 2017.080000 | 15.900000 |
print(np.corrcoef(dolar['Dolar'],desemprego['Desemprego']))
[[ 1. 0.72697675] [ 0.72697675 1. ]]
plt.scatter(dolar['Dolar'],desemprego['Desemprego'])
<matplotlib.collections.PathCollection at 0x7f6bf179ae10>
plt.plot(dolar['Periodo'],dolar['Dolar'])
[<matplotlib.lines.Line2D at 0x7f6bf1729f98>]
plt.plot(desemprego['Periodo'],desemprego['Desemprego'])
[<matplotlib.lines.Line2D at 0x7f6bf16bf5f8>]
Spearman
print(stats.spearmanr(dolar['Dolar'],desemprego['Desemprego']))
SpearmanrResult(correlation=0.4841515871869444, pvalue=1.8418838317919234e-08)
independente = np.linspace(1,stop=5,num=50)
independente
array([ 1. , 1.08163265, 1.16326531, 1.24489796, 1.32653061, 1.40816327, 1.48979592, 1.57142857, 1.65306122, 1.73469388, 1.81632653, 1.89795918, 1.97959184, 2.06122449, 2.14285714, 2.2244898 , 2.30612245, 2.3877551 , 2.46938776, 2.55102041, 2.63265306, 2.71428571, 2.79591837, 2.87755102, 2.95918367, 3.04081633, 3.12244898, 3.20408163, 3.28571429, 3.36734694, 3.44897959, 3.53061224, 3.6122449 , 3.69387755, 3.7755102 , 3.85714286, 3.93877551, 4.02040816, 4.10204082, 4.18367347, 4.26530612, 4.34693878, 4.42857143, 4.51020408, 4.59183673, 4.67346939, 4.75510204, 4.83673469, 4.91836735, 5. ])
np.random.seed(101)
dependente = [1 / (np.log(x) + (np.random.rand()*0.7)) for x in independente]
plt.scatter(independente,dependente)
<matplotlib.collections.PathCollection at 0x7f6bf031a828>
# Calculando Pearson:
pearson_r = np.corrcoef(independente,dependente)
# Calculando Spearman
spearman_r = stats.spearmanr(independente,dependente)
print('r Pearson',pearson_r)
print('r Spearman',spearman_r)
r Pearson [[ 1. -0.6051513] [-0.6051513 1. ]] r Spearman SpearmanrResult(correlation=-0.89733493397358943, pvalue=1.1314262188109336e-18)