import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import sklearn as sk
from sklearn.linear_model import LinearRegression
"""
Una qualunque tabella è pensata come una matrice
cioè una serie di array disposti in un certo ordine.
Il seguente DataFrame (la matrice, quindi) è pensata come
la colonna delle X (colonna A) e i dati Y (colonna B)
"""
df=pd.DataFrame({
"A":pd.Series([1.,3,5,6,8]),
"B":pd.Series([10,24,48,60,75])
})
df
X=df[["A"]]
X
Y=df["B"]
Y
"""
Se l'ipotesi che X e Y siamo correlati da una legge lineare
del tipo Y=M*X+Q, l'oggetto LinearRegression permette di individuarne
le proprietà
"""
lm=LinearRegression()
lm.fit(X,Y)
X
Y
"""
Yhat ora contiene la "predizione"
sui valori assunti in base alla
regressione lineare
"""
Yhat=lm.predict(X)
Yhat
"""
L'intercetta corrisponde al termine
noto Q della retta
"""
lm.intercept_
"""
Il coefficiente angolare corrisponde
all'M della retta di regressione
"""
lm.coef_
"""
IL grafico dei dati e della regressione
lineare
"""
sns.regplot(x="A",y="B",data=df)
plt.ylim(0,)
"""
La varianza trala previsione e i dati
è espressa dal grafico dei residui
"""
sns.residplot(df["A"],df["B"])