import pandas as pd
perindex = pd.read_csv("Performance Index.csv")
import statsmodels.formula.api as smf
jpimodel = smf.ols('jpi~aptitude+tol+technical+general', data = perindex).fit()
from patsy import dmatrices
from statsmodels.stats.outliers_influence import variance_inflation_factor
#Break data into left and right hand side; y and X
y, X = dmatrices('jpi~aptitude+tol+technical+general', data=perindex, return_type='dataframe')
vif =pd.Series([variance_inflation_factor(X.values, i) for i in range(X.shape[1])], index = X.columns)
vif
perindex = perindex.assign(pred = pd.Series(jpimodel.fittedvalues))
perindex = perindex.assign(res = pd.Series(jpimodel.resid))
perindex.plot.scatter(x='pred',
y='res')
import statsmodels.api as sm
fig = sm.graphics.qqplot(perindex['res'], line = '45', fit = True)
import scipy as sp
sp.stats.shapiro(perindex.res)
