{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Lab 02:\n", "\n", "Vous allez appliquer la régression linéaire sur le dataset advertising.\n", "\n", "Ce dataset est composé de 200 échantillons et des variables suivantes:\n", "\n", "* 3 prédicteurs **TV**, **Radio**, **Newspaper**: qui sont les sommes dépensées pour chacun de ces média (k$)\n", "* une variable cible continue: *Sales* qui correspond aux ventes réalisées\n", "\n", "Le but de ce TD est de trouver le modèle qui minimise le plus l'erreur quadratique (MSE). L'erreur quadratique est définie comme le carrée de la différence entre les predictions et les vraies valeurs.\n", "\n", "Vous utiliserez la librarie ```statsmodels```.\n", "\n", "# Delivrable\n", "\n", "Un notebook jupyter comprennant vos explications, illustrations et code python,\n", "\n", "\n", "# 1. Exploration du dataset\n", "\n", "* Chargez le csv dans une dataframe pandas ```df```\n", "* Quelle est la distribution de chaque variable?\n", "* Y a t il des valeurs manquantes ou aberrantes (outliers)\n", "* Quelle est la corrélation entre chacune des variables\n", "* Faire un scatterplot de chaque couple de variable\n", "* Que pouvez vous en déduire ?\n", "\n", "# 2. Modeles univariables\n", "\n", "Pour chacun des predicteurs (TV, Radio, Newspaper) créez un modèle univariable.\n", "\n", " import statsmodels.formula.api as smf\n", " lm = smf.ols(formula='Sales ~ Radio ', data=df).fit()\n", "\n", "* Determinez le meilleur modèle en fonction\n", " * de R^2\n", " * des coefficients\n", " * des pvalues ```lm.pvalues```\n", " * de la MSE (utilisez ```lm.fitted_values``` pour les valeurs prédites)\n", "\n", "Le coefficient de la regression Sales ~ Radio est plus petit que le coefficient de la regression Sales ~ TV alors que TV est plus corrélé à Sales que Radio, comment expliquer cela ?\n", "\n", "Comment modifier les données pour que le coefficient de la regression linéaire reflete l'importance de la variable par rapport aux autres.\n", "\n", "Dans le modele ```Sales ~ TV``` que représente l'intercept ?\n", "Si le budget TV est nul, combien d'unité de Sales seront quand meme vendu [95% interval] ?\n", "\n", "# 3. modele multi variables\n", "\n", "Construisez maintenant le modele a partir des 3 prédicteurs ```Sales ~ Radio + TV + Newspaper```.\n", "\n", "* Qu'observez vous en terme d'importance relative des prédicteurs ?\n", "* Si vous augmentez de 50 les sommes allouées au média TV, de combien augmentent les ventes.\n", "\n", "* Comment expliquer que le coefficient pour Newspaper est presque nul, légérement négatif, dans le modèle complet tandis qu'il est positif lorsque pris en compte individuellement ?\n", "\n", "* Est ce que enlever la variable Newspaper améliore le modèle ? Au niveau R^2, R^2_adj et MSE ?\n", "\n", "# 4. modele multiplicatif\n", "\n", "Rajoutez au modèle la variable multiplicative ```tv_radio = TV * Radio ```.\n", "\n", "Comment interpreter que cette variable ait une si forte influence sur le modèle ?\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.2" } }, "nbformat": 4, "nbformat_minor": 2 }