Created
April 23, 2018 17:21
-
-
Save emredjan/852ab5cd67cc274f895ec631c86e3af8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
plot_lm_4 = plt.figure(4) | |
plot_lm_4.set_figheight(8) | |
plot_lm_4.set_figwidth(12) | |
plt.scatter(model_leverage, model_norm_residuals, alpha=0.5) | |
sns.regplot(model_leverage, model_norm_residuals, | |
scatter=False, | |
ci=False, | |
lowess=True, | |
line_kws={'color': 'red', 'lw': 1, 'alpha': 0.8}) | |
plot_lm_4.axes[0].set_xlim(0, 0.20) | |
plot_lm_4.axes[0].set_ylim(-3, 5) | |
plot_lm_4.axes[0].set_title('Residuals vs Leverage') | |
plot_lm_4.axes[0].set_xlabel('Leverage') | |
plot_lm_4.axes[0].set_ylabel('Standardized Residuals') | |
# annotations | |
leverage_top_3 = np.flip(np.argsort(model_cooks), 0)[:3] | |
for i in leverage_top_3: | |
plot_lm_4.axes[0].annotate(i, | |
xy=(model_leverage[i], | |
model_norm_residuals[i])) | |
# shenanigans for cook's distance contours | |
def graph(formula, x_range, label=None): | |
x = x_range | |
y = formula(x) | |
plt.plot(x, y, label=label, lw=1, ls='--', color='red') | |
p = len(model_fit.params) # number of model parameters | |
graph(lambda x: np.sqrt((0.5 * p * (1 - x)) / x), | |
np.linspace(0.001, 0.200, 50), | |
'Cook\'s distance') # 0.5 line | |
graph(lambda x: np.sqrt((1 * p * (1 - x)) / x), | |
np.linspace(0.001, 0.200, 50)) # 1 line | |
plt.legend(loc='upper right'); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment