titre: Prediction de prix de vente de maison
date: ‘2023-01-17’
I. Introduction:
PROBLEMATIQUE:
Demandez à un acheteur de maison de décrire la maison de ses rêves, et il ne commencera probablement pas par la hauteur du plafond du sous-sol ou la proximité d’une voie ferrée Est-Ouest. Mais l’ensemble des informations de ce jeu de données prouve que beaucoup plus influence les négociations de prix de vente d’une propriété que le nombre de chambres ou une clôture blanche.
Objectif:
En se basant sur des modèles de régression linéaire, construir un model de prediction de prix de vente de maison à partir des aspects caracteristiques de la propriété:
- Prédire les prix des maisons afin d’aider les acheteurs et les investisseurs immobiliers à prendre des décisions sur le marché immobilier;
- Avoir une idée de la valeur d’un bien immobilier pour eviter un surélévation de son prix;
- Aider à lutter contre les arnaque pouvant exister dans le secteur immobilier.
Origine du sujet:
Ce projet est tiré d’un concours sur Kaggle, on a ensuite adapter la problématique à nos objectifs afin de répondre aux attentes du cours de régression linéaire en terme de compétences, de connaissances pratiques et de professionnalisation.
Competences visées:
ce projet s’inscrivant dans le cadre de professionalisation de notre parcours, nous confronte à des vrais defis de datascientist rencontrés dans le monde des entreprises. A l’issu de ce projet nous aurons developpés des compétences en:
- Ingénierie des fonctionnalités créatives
- Techniques de régression avancées
- Apprentissage automatique
- Programation R
- Exploration, Traitement et visualisation de données
- Construction et validation d’un model de régression
II. Explorations des Donnees:
Importation des donnees:
## ce tableau a pour dimension: 1460 81
Renommer le nom des variables en français:
on a creer le fichier Frenchvar.xlsx où on a les noms de toutes les variables en français, puis remplacer mames(data) par cette liste.
Description de l’ensemble de Champs de données:
## on a 81 variables dont 37 sont quantitatives et 43 sont qualitatives.
Nous avons au total 1460 observations et 80 variables dont 79 explicatives et une variable expliquée (“SalePrice”). Il s’agit de la variable cible que nous essayons de prédire.
Nombre de valeurs manquantes:
## on a 6965 valeures manquantes
III. Traitement des valeurs manquantes:
Les variables quantitatives:
Grace à la fonction summary() nous avont pu identifier les variables qui avaient des valeures manquantes.
On observe qu’il y’a que le variable TerrainFaçade, SurfacePlacage et GarageDatConst qui on des valeurs manquantes , on a dabord observer ces variables ensuite les traiter.
Visualisation des trois variables:
- TerrainFaçade
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 259 rows containing non-finite values (`stat_bin()`).
## Warning: Removed 259 rows containing non-finite values (`stat_density()`).
## Warning: Removed 259 rows containing non-finite values (`stat_boxplot()`).
- SurfacePlacage
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 8 rows containing non-finite values (`stat_bin()`).
## Warning: Removed 8 rows containing non-finite values (`stat_density()`).
## Warning: Removed 8 rows containing non-finite values (`stat_boxplot()`).
- GarageDatConst
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 81 rows containing non-finite values (`stat_bin()`).
## Warning: Removed 81 rows containing non-finite values (`stat_density()`).
## Warning: Removed 81 rows containing non-finite values (`stat_boxplot()`).
Covariance avec la variable cible:
## TerrainFaçade SurfacePlacage GarageDatConst
## [1,] 0.3442698 0.4886582 0.504753
Remplacer les valeurs manquantes de chaque colonne par sa moyenne:
Covariance après traitement:
## TerrainFaçade SurfacePlacage GarageDatConst
## [1,] 0.3349009 0.4752413 0.4701775
On observe que cette modification ne changes pas grand chose à la corrélation de ces variables avec notre variables cible.
IV. Analyse univarier:
Observations de toutes les variables:
corrélations:
Correlation des variables quantitatives avec la variales “SalePrice”: pour connaitre l’influence de chaque variables sur le prix de vente d’une Maison. et on vas se basé sur ça pour faire notre Analyse Univarier.
## ClasseConst TerrainFaçade TailleTerrain QualiteMateriaux EtatGeneral
## 1 -0.08428414 0.3349009 0.2638434 0.7909816 -0.07785589
## DateConstruction DateRenovation SurfacePlacage PiedsCarresFinis1
## 1 0.5228973 0.507101 0.4752413 0.3864198
## PiedsCarresFinis1.1 PiedsCarresvide SuperficieSousol PiedsCarresEtage1
## 1 -0.01137812 0.2144791 0.6135806 0.6058522
## PiedsCarresEtage2 PiedCarreBasQuali SurfaceHabitable SousolFullBath
## 1 0.3193338 -0.02560613 0.7086245 0.2271222
## SousolHaftBath TotalFullBath TotalHalfBath TotalChambre TotalCuisine
## 1 -0.01684415 0.5606638 0.2841077 0.1682132 -0.1359074
## TotalPiece NbrCheminees GarageDatConst GarageNbrVoiture Garagetaille
## 1 0.5337232 0.4669288 0.4701775 0.6404092 0.6234314
## TerrasEnBoisPC PorcheOuvert PorcheFerme Porche3Saisons PorcheGrillage
## 1 0.3244134 0.3158562 -0.128578 0.04458367 0.1114466
## TaillePiscine ValCaractDiverse MoisVente DateVente PrixVente
## 1 0.09240355 -0.02118958 0.04643225 -0.02892259 1
Basé sur ces corrélations, nous avons choisis d’étudier certains variables utiles (ayant une corrélations >= abs(0.5)) pour la suite de notre étude: les nouvelles données d’études sont stocké dans la tables data_util.
Visualisation des variables choisies: Avant et Apres normalisation à log10 de nos Variables selectionnees:
- QualiteMateriaux
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
- DateConstruction
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Use of `variable_quanti$DateConstruction` is discouraged.
## ℹ Use `DateConstruction` instead.
- DateRenovation
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Use of `variable_quanti$DateRenovation` is discouraged.
## ℹ Use `DateRenovation` instead.
- SuperficieSousol
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 37 rows containing non-finite values (`stat_bin()`).
## Warning: Removed 37 rows containing non-finite values (`stat_density()`).
## Warning: Use of `variable_quanti$SuperficieSousol` is discouraged.
## ℹ Use `SuperficieSousol` instead.
## Warning: Removed 37 rows containing non-finite values (`stat_boxplot()`).
- PiedsCarresEtage1
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Use of `variable_quanti$PiedsCarresEtage1` is discouraged.
## ℹ Use `PiedsCarresEtage1` instead.
- SurfaceHabitable
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Use of `variable_quanti$SurfaceHabitable` is discouraged.
## ℹ Use `SurfaceHabitable` instead.
- TotalFullBath
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 9 rows containing non-finite values (`stat_bin()`).
## Warning: Removed 9 rows containing non-finite values (`stat_density()`).
## Warning: Use of `variable_quanti$TotalFullBath` is discouraged.
## ℹ Use `TotalFullBath` instead.
## Warning: Removed 9 rows containing non-finite values (`stat_boxplot()`).
- TotalPiece
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Use of `variable_quanti$TotalPiece` is discouraged.
## ℹ Use `TotalPiece` instead.
- GarageNbrVoiture
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 81 rows containing non-finite values (`stat_bin()`).
## Warning: Removed 81 rows containing non-finite values (`stat_density()`).
## Warning: Use of `variable_quanti$GarageNbrVoiture` is discouraged.
## ℹ Use `GarageNbrVoiture` instead.
## Warning: Removed 81 rows containing non-finite values (`stat_boxplot()`).
- Garagetaille
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 81 rows containing non-finite values (`stat_bin()`).
## Warning: Removed 81 rows containing non-finite values (`stat_density()`).
## Warning: Use of `variable_quanti$Garagetaille` is discouraged.
## ℹ Use `Garagetaille` instead.
## Warning: Removed 81 rows containing non-finite values (`stat_boxplot()`).
- PrixVente
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Use of `variable_quanti$PrixVente` is discouraged.
## ℹ Use `PrixVente` instead.
matrice de corrélation entre variables quantitatives utilles (choisies):
## corrplot 0.92 loaded
- Etude particulier de la variables
“TailleTerrain”:
Car on a pas trouver normal que cette variable ait une correlation faible avec le prix d’une maison.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
NB: on a trouver qu’elle a une distribution normal, donc la corrélation est juste.
V. L’Analyse en Composantes Principales (ACP):
VI. Le modèle de gression linéaire Multiples:
La regression linéaire est un outil statistiques qui permet de determiner la relation entre une variable dépendante (variable expliquée) expliquer et une ou plusieurs variables independantes (variables explicatives).
Le model s’écrit:
\[Y_i = \sum_{j=0}^p{a_j x_{i,j}} + \epsilon_i; \space\space i = 1,...,n\] sous forme matricielle: \[ \begin{pmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{pmatrix} = \begin{pmatrix} 1 & x_{1,1} & ...& x_{1,p} \\ \vdots & \vdots &... & \vdots \\ 1 & x_{j,1} & ...& x_{j,p} \\ \vdots & \vdots &... & \vdots \\ 1 & x_{n,1} &...& x_{n,p} \end{pmatrix} \ \begin{pmatrix} a_o \\ \vdots\\ a_j \\ \vdots\\ a_p \end{pmatrix} + \begin{pmatrix} \epsilon_1 \\ \vdots \\ \epsilon_j \\ \vdots \\ \epsilon_n \end{pmatrix} \\\]
On pose Y = X.A + \(\epsilon\), où:
PrixVente est la variable expliquée Y et
Les 10 autres variables constituent nos variables explicatives X.
VI.1. Les Hypothèses :
- Hypothèses à priori
r(X_i,Y) \(\neq\) 0
La matrice X est de plein rang i-e les $X_j $ ne sont colinéaires (linéairement indépendants), assure que X’X est inversible.
n > p + 1, n = p + 1 ou n < p + 1 :
Résoudre le modèle de régression linéaire précédent revient à résoudre une équation à n équations et p inconnues.
n = p + 1, la droite de régression” est celle qui passent par tous les points (pas très intéressant).
n > p + 1 , une unique solution
n < p + 1, il y a une infinité de solutions.
⇒ X n’est pas de plein rang (= p + 1); et il existe une colinéarité entre ses colonnes
Hypothèses à postériori
- \(E(\varepsilon_i) = 0\) et \(\sigma^2(\varepsilon_i) = \sigma^2\) (ce qui équivaut à \(var(\varepsilon_i) = \sigma^2In)\) et que les \(\varepsilon_i\) sont non-corrélés et \(cov(Xi, \varepsilon_i) = 0.\)
-— ou plus strictement \(\varepsilon_i\) i.i.d. et indépendant de \(X_i\).
- Les \(\epsilon_i\) sont des variables aléatoires normales.
VI.2. Estimation du modèle de régression linéaire:
\[Y = X.A + \epsilon\]
Estimation par la methode des moindres carrés:
\[ d(Y,X.A)=||Y-XA||_2=(\sum_{i=1}^n |Y_i- (\alpha_0 + \alpha_1.X_{1i} + \alpha_2.X_{2i}+...+\alpha_1.X_{pi})|^2)^{1/2}\] On vas chercher A par la methode des moindre carrees en minimisant la somme des residus au carrée: \[\mathrm\sum_{i=1}^n\varepsilon_i^2\]
Si X est de plein rang, il n’existe pas de colineaire entre les colonnes de X, alors X’X est INVERSIBLE. Donc on a :
\[ \hat{A}= (X'X)^{-1}X'Y\] ### APPLICATION:
Notre Y est la colonne PrixVente:
## [,1]
## [1,] 208500
## [2,] 181500
## [3,] 223500
## [4,] 140000
## [5,] 250000
## [6,] 143000
Notre X est la matrice composées par les dix autres colonnes de la tabe data_util à laquelle on ajoute une colonne unité:
- Calcule des coeficients de la matrice \(\hat{A}\) sans lm
## [,1]
## Col_des_1 -1.186194e+06
## QualiteMateriaux 1.960459e+04
## DateConstruction 2.682407e+02
## DateRenovation 2.964812e+02
## SuperficieSousol 1.986510e+01
## PiedsCarresEtage1 1.417374e+01
## SurfaceHabitable 5.129712e+01
## TotalFullBath -6.790871e+03
## TotalPiece 3.310508e+01
## GarageNbrVoiture 1.041790e+04
## Garagetaille 1.494753e+01
- Calcul des coefficients avec la fonction lm de R:
## (Intercept) XCol_des_1 XQualiteMateriaux XDateConstruction
## -1.186194e+06 NA 1.960459e+04 2.682407e+02
## XDateRenovation XSuperficieSousol XPiedsCarresEtage1 XSurfaceHabitable
## 2.964812e+02 1.986510e+01 1.417374e+01 5.129712e+01
## XTotalFullBath XTotalPiece XGarageNbrVoiture XGaragetaille
## -6.790871e+03 3.310508e+01 1.041790e+04 1.494753e+01
NB: on remarque que les coefficient calculer et ceux obtenus par la fonction lm sont identiques.
VI.3. Qualité d’ajustement : le coefficient de détermination (analyse de la variance).
On appelle le coefficient de détermination multiple, le réel noté, \(R^2\):
\[ R^2=\dfrac{SCR_{reg}}{SC{tot}}= 1-\dfrac{SCR_{res}}{SC{tot}}\] Avec: $$ SCR_{reg}=||-{{y}}1||^2; La somme descarrés delaregression\
SCR_{res}=||{}||2=||Y-{}||2= (n-p-1)^2; Lasommedescarrésdesresidus\
SC_{tot}= SCR_{res}+SCR_{reg}=||Y-{{y}}1||^2; laSommedesCarrés$$
Interpretation: coefficient de détermination
\[R^2=\dfrac{SCR_{reg}}{SC{tot}}= \dfrac{||\hat{Y}-{\bar{y}}1||^2}{||{Y}-{\bar{y}}1||^2}=(\dfrac{||HY-y1||}{||Y-y1||})^2=cos^2(angle(HY,Y)) \]
Si le \(R^2\) est proche de 1 cela signifie que le modèle de régression linéaire est quasiment parfait pour expliquer y par x.
R est appelé le coefficient de corrélation linéaire multiple entre Y et les \(X_j\) . C’est le coefficient de corrélation linéaire entre Y et $ $:
\[ R = cor(\hat{Y}, Y).\] - Défaut du \(R^2\): il a tendance à augmenter à mesure que l’on ajoute des variables dans le modèle.
APPLICATIONS:
- Calcul de \(R^2\) avec la formule précedente:
Remarque: ce model peut s’écrire: $ = X = X(X’X)^{-1}X’Y = HY $\ où \(H =X(X'X)^{-1}X'\) est appelé la matrice “hat matrix”
## [,1]
## [1,] 0.7736928
- Calcul de \(R^2\) avec la méthode lm:
## [1] 0.7736928
NB: On observe la meme valeur de \(R^2\) pour les deux méthodes.
VI.4. Propriétés des estimateurs:
Sous nos hypothèses précédentes, l’estimateur MCO \(\hat{A}\) est:
Sans biais : \(E(\hat{A})=A\)
Le meilleur (au sens de MSE, parmi les fonctions linéaires) estimateur sans biais (il est de variance minimum), (BLUE Best Linear Unbiased Estimator).
Sous l’hypothèse de normalité des \({\epsilon_i}\), \(\hat{A}\) est l’EMV. Il est donc efficace c-à-d sa matrice de variance atteint la borne de Cramer-Rao.
On montre que: \[\hat{A}∼ N(A,{\theta^2}(X'X)^{-1}))\]
4.\(\hat{A}→ N(A,\dfrac{\ {\theta^2}Q^{-1}}{n}))\) Si l’hypothese de normalité n’est pas vérifiee mais que l’hypothese*** \(\dfrac{X'X}{n}→Q\) (inversible) est verifiee, alors le resultat est valide:
5.\(\hat{A}\) est convergent en
probabilité. - on a: - \(Var(\hat{Y})={\sigma}^2H\)
- \(Var(e)=Var(I-H)Y)=(I-H)Var(Y)(I-H)={\sigma}^2(I-H)\)
VI.5. Inférence, significativité du modèle:
On a vu que plus \(R^2\) est proche de 1, plus le modèle est intéressant pour expliquer y par x mais cela ne nous dit pas le degré de confiance que l’on peut faire en cette affirmation. Pour cela il faut:
— Donner des intervalles de confiance pour les coefficients \(a_j\) . — Tester le modèle globale.
VI.6. Loi des paramètres:
${}^2(A) = {}2(X’X){-1} $
la variance de a_j est: \({\sigma}^2_{aj}=[{\sigma}^2(XX')^{-1}]_{jj}\)
Si on remplance \({\sigma}^2\) par son estimation sans biais \({S}^2\), on a des estimations de \({\sigma}^2(\hat{A})\) et de \({\sigma}^2_{aj}\). Avec:
\({\hat\sigma}^2(\hat{A})={S}^2(X'X)^{-1}\)
\({\hat\sigma}^2_{aj}=[{S}^2(X'X)^{-1}]_{jj}\)
APPLICATION:
- Calcul de la variance avec la formule \({\hat\sigma}^2(\hat{A})={S}^2(X'X)^{-1}\):
## Col_des_1 QualiteMateriaux DateConstruction DateRenovation
## 9.705718e+12 8.246635e+08 1.475711e+06 2.357511e+06
## SuperficieSousol PiedsCarresEtage1 SurfaceHabitable TotalFullBath
## 1.074192e+04 1.414855e+04 1.043003e+04 4.188940e+09
## TotalPiece GarageNbrVoiture Garagetaille
## 7.290794e+08 5.395530e+09 6.190188e+04
- Calcul de la variance avec la fonction vcov:
## (Intercept) XCol_des_1 XQualiteMateriaux XDateConstruction
## 1.667096e+10 NA 1.416477e+06 2.534745e+03
## XDateRenovation XSuperficieSousol XPiedsCarresEtage1 XSurfaceHabitable
## 4.049362e+03 1.845079e+01 2.430216e+01 1.791507e+01
## XTotalFullBath XTotalPiece XGarageNbrVoiture XGaragetaille
## 7.195103e+06 1.252298e+06 9.267594e+06 1.063253e+02
VI.7. Intervalles de confiance (inférence) pour chaque paramètre (coefficients):
un intervalle de confiance au niveau 1 − α est sous la forme :
\[ IC=[{\hat\alpha_j}±{\hat\sigma_{aj}} × t_{n-p-1; 1-\frac{a}{2}}] \] ### Application :
- calcule de l’IC avec la fonction de R:
## 2.5 % 97.5 %
## (Intercept) -1.439468e+06 -932919.37339
## XCol_des_1 NA NA
## XQualiteMateriaux 1.726997e+04 21939.20779
## XDateConstruction 1.694814e+02 367.00004
## XDateRenovation 1.716554e+02 421.30695
## XSuperficieSousol 1.143916e+01 28.29104
## XPiedsCarresEtage1 4.503581e+00 23.84389
## XSurfaceHabitable 4.299440e+01 59.59983
## XTotalFullBath -1.205261e+04 -1529.12988
## XTotalPiece -2.162048e+03 2228.25841
## XGarageNbrVoiture 4.446249e+03 16389.55310
## XGaragetaille -5.279369e+00 35.17444
- Calcul de l’IC sans la fonction de R:
## [1] "la borne sup de IC est:"
## [,1]
## Col_des_1 -3.695475e+12
## QualiteMateriaux 5.629197e+08
## DateConstruction 3.231301e+05
## DateRenovation 4.517777e+05
## SuperficieSousol 1.826335e+03
## PiedsCarresEtage1 1.419046e+03
## SurfaceHabitable 5.009700e+03
## TotalFullBath -4.396641e+08
## TotalPiece 8.333016e+05
## GarageNbrVoiture 7.650745e+08
## Garagetaille 3.160716e+03
## [1] "la borne inf de IC est:"
## [,1]
## Col_des_1 -3.695461e+12
## QualiteMateriaux 5.630485e+08
## DateConstruction 3.285814e+05
## DateRenovation 4.586678e+05
## SuperficieSousol 2.291431e+03
## PiedsCarresEtage1 1.952820e+03
## SurfaceHabitable 5.467994e+03
## TotalFullBath -4.393737e+08
## TotalPiece 9.544699e+05
## GarageNbrVoiture 7.654041e+08
## Garagetaille 4.277203e+03
VII. Diagnostic du modèle.
Resume du model:
##
## Call:
## lm(formula = Y ~ X)
##
## Residuals:
## Min 1Q Median 3Q Max
## -489958 -19316 -1948 16020 290558
##
## Coefficients: (1 not defined because of singularities)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.186e+06 1.291e+05 -9.187 < 2e-16 ***
## XCol_des_1 NA NA NA NA
## XQualiteMateriaux 1.960e+04 1.190e+03 16.472 < 2e-16 ***
## XDateConstruction 2.682e+02 5.035e+01 5.328 1.15e-07 ***
## XDateRenovation 2.965e+02 6.363e+01 4.659 3.47e-06 ***
## XSuperficieSousol 1.986e+01 4.295e+00 4.625 4.09e-06 ***
## XPiedsCarresEtage1 1.417e+01 4.930e+00 2.875 0.004097 **
## XSurfaceHabitable 5.130e+01 4.233e+00 12.119 < 2e-16 ***
## XTotalFullBath -6.791e+03 2.682e+03 -2.532 0.011457 *
## XTotalPiece 3.310e+01 1.119e+03 0.030 0.976404
## XGarageNbrVoiture 1.042e+04 3.044e+03 3.422 0.000639 ***
## XGaragetaille 1.495e+01 1.031e+01 1.450 0.147384
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 37920 on 1449 degrees of freedom
## Multiple R-squared: 0.7737, Adjusted R-squared: 0.7721
## F-statistic: 495.4 on 10 and 1449 DF, p-value: < 2.2e-16
Rappel de notre model:
\[Y_i = \sum_{j=0}^p{a_j x_{i,j}} + \epsilon_i; \space\space i = 1,...,n\] ### Rappel des Hypothèses à postériori:**
Le model non linéaire
\(E(\varepsilon_i) = 0\)
3.$^2(_i) =cte= ^2 ∀ i = 1, …, n $
independance des \(\epsilon_i\)
Les \(\epsilon_i\) sont des variables aléatoires normales.
VII.1. Vérification des hypothèses :
Vérification de:
- Le model non linéaire,
- esperance nulle
- 3.homogeneité
(A) Mehode graphique:
NB: On remarque que la disperssion admet une forme
particulière donc les hypothèses 1, 2 et 3 son non valides.
(B) Mehode test:
Hypothese esperance nulle: Test “t.test”
##
## One Sample t-test
##
## data: residuals1
## t = 1.064e-15, df = 1459, p-value = 1
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -1940.145 1940.145
## sample estimates:
## mean of x
## 1.052371e-12
*NB:** On a p-value = 1 donc l’hypothese nulle est acceptee au niveau de signification alpha = 0.05.
Hypothese d’homogeneité: Test “Breusch-Pagan”
## Le chargement a nécessité le package : zoo
##
## Attachement du package : 'zoo'
## Les objets suivants sont masqués depuis 'package:base':
##
## as.Date, as.Date.numeric
##
## studentized Breusch-Pagan test
##
## data: Model
## BP = 429.01, df = 10, p-value < 2.2e-16
ona a un p-value très faible, donc la variance des résidus n’est pas constante pour toutes les valeurs des variables explicatives: hypothese null rejetée.
Vérification de Hypothese d’independance des residus (e_i):
(A) Mehode graphique:
*NB: on observe que plot(\(t_i\)) (\(t_i\) en fonction de i) est dispersé le long de l’axe x = 0 de façon symétrique sans forme particulière, il y a indépendance des residus (non-correlation).
(B) Mehode test:
- Test de Breusch-Godfrey:
##
## Breusch-Godfrey test for serial correlation of order up to 1
##
## data: Model
## LM test = 0.080618, df = 1, p-value = 0.7765
On a p-value >0.05 donc l’hypothese nulle est acceptee au niveau de signification alpha = 0.05
- Test de Box:
##
## Box-Pierce test
##
## data: residuals1
## X-squared = 0.08011, df = 1, p-value = 0.7771
On tire la meme conclusion que le test de Breusch-Godfrey.
Vérification de l’hypothèse de normalité:
(A) Mehode graphique:
les résidus sont bien distribués le long de la droite figurant sur le plot et la densité a la forme d’une loi normale, donc l’hypothèse de normalité est acceptée.
NB: cette vrification n’etait pas necessaire car on a un grand echantillon d’observation, donc on pouvait conclure de manire asymptotique.
(B) Mehode test:
- Test de Shapiro-Wilk
##
## Shapiro-Wilk normality test
##
## data: summary(Model)$residuals
## W = 0.80186, p-value < 2.2e-16
- Test de Lilliefors
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: summary(Model)$residuals
## D = 0.10694, p-value < 2.2e-16
On a le meme p-value très faible pour les deux testes, donc l’hypothese est rejetée au niveau de signification alpha= 2.2e-16.
remarque: contradiction avec la prémiere conclusion du graphe.
VII. Détection d’observations extrêmes (atypiques ou aberante):
VII.1. Visualisation des individus:
VII.2 Les différentes mesures d’influences:
VIII. Sélection de modèles ou alternatives en cas de multicolinéarité
VIII.1 Sélection de modèles cas où le modèle est valable
VIII.2 Sélection de modèles ou alternatives en cas de multicolinéarité
VIII.2.1 Régression PCR (Principal Componant Regression):
L’algorithme PCR consiste à choisir un nombre de composantes m et à faire une régression MCO sur les m premiers axes de l’ACP:
\[Y = \sum_{j=0}^m{a_j X_j} \]
##
## Attachement du package : 'pls'
## L'objet suivant est masqué depuis 'package:corrplot':
##
## corrplot
## L'objet suivant est masqué depuis 'package:stats':
##
## loadings
## Data: X dimension: 1460 10
## Y dimension: 1460 1
## Fit method: svdpc
## Number of components considered: 10
##
## VALIDATION: RMSEP
## Cross-validated using 1460 leave-one-out segments.
## (Intercept) 1 comps 2 comps 3 comps 4 comps 5 comps 6 comps
## CV 79470 41476 41510 41709 41614 40876 39012
## adjCV 79470 41476 41510 41709 41614 40876 39012
## 7 comps 8 comps 9 comps 10 comps
## CV 39039 38960 39305 39293
## adjCV 39038 38959 39304 39292
##
## TRAINING: % variance explained
## 1 comps 2 comps 3 comps 4 comps 5 comps 6 comps 7 comps 8 comps
## X 51.80 66.08 76.97 85.12 89.57 93.21 96.04 97.60
## Y 73.03 73.10 73.10 73.36 74.42 76.76 76.77 76.92
## 9 comps 10 comps
## X 98.95 100.00
## Y 77.26 77.37
On compare nos différentes valeurs de CV et sélectionons les valeurs minimales. Ici, on choisit donc de sélectionner 8 composantes.
## 8 comps
## 8
Visualisation des resultats du modele PCR:
On remarque que les MSE(erreur quadratique moyenne) sont très faibles
pour les composantes superieure ou égales à 6, la qualité de prévision
du modèle est donc optimale pour ces valeurs.
Qualité prédictive de ce modèle:
en observant l’erreur quadratique moyenne très faible à partir de la 6èm composante et le \(R^2\) proche de 0.9, on peut dire que ce modele est performent.
- Modele avec les 6 premieres composantes qui expliquent 93% de l’information:
NB: on remarque que les valeurs nos composantes sont tès éloigner de 0, donc nos composantes ont une contribution importantee à la prédiction de la variable dépendante.
(B) Régression PLS(Partial Least Square):
- Faire une régression PLS de Y sur X.
La régression PLS propose de construire également de nouvelles composantes comme des combinaisons linéaires des variables explicatives. Comme pour l’algorithme PCR, les composantes sont calculées les unes après les autres et orthogonales entre elles. La principale différence et qu’on ne cherche pas les composantes qui maximisent la variabilité des observations projetées, mais les composantes qui maximisent la colinéarité avec la cible.
## Data: X dimension: 1460 10
## Y dimension: 1460 1
## Fit method: kernelpls
## Number of components considered: 10
##
## VALIDATION: RMSEP
## Cross-validated using 10 random segments.
## (Intercept) 1 comps 2 comps 3 comps 4 comps 5 comps 6 comps
## CV 79470 40999 39329 38916 38846 39128 39113
## adjCV 79470 40990 39263 38870 38804 39054 39042
## 7 comps 8 comps 9 comps 10 comps
## CV 39149 39161 39163 39164
## adjCV 39074 39085 39086 39087
##
## TRAINING: % variance explained
## 1 comps 2 comps 3 comps 4 comps 5 comps 6 comps 7 comps 8 comps
## X 51.78 57.72 68.82 76.86 80.34 87.78 94.41 95.91
## Y 73.66 76.72 77.14 77.26 77.35 77.36 77.37 77.37
## 9 comps 10 comps
## X 98.41 100.00
## Y 77.37 77.37
- Chois du nombre de composante à garder:
## 4 comps
## 4
Visualisation des resultats du PLS:
NB: Les MSE (erreurs quadratiques moyennes) sont très faibles à partir de la 4èm composante? Donc le choix de selectionner 4 composantes est justifier.
Coefficients du modèle:
- Modèle avec toutes les composantes
- Modele avec les 4 premieres composantes qui expliquent environ 76% de l’information:
Qualité prédictive de ce modèle: dans notre cas on a la meme interpretation et la meme conclusion que le PCR.
VIII.2.2 Régression Ridge:
Construction du modèle:
## Le chargement a nécessité le package : Matrix
## Loaded glmnet 4.1-6
On remarque que les coefficients fluctuent en fonction des lambdas. Cherchons maintenant la valeur de lambda qui minimise les erreurs quadratiques.
Selection de lamda par validation croisé:
## [1] 6135.907
methode de promo-précedente:
## [1] 6281.603 93279.818
on trouve presque la meme valeur de lamnda optimal.
Modele Optimale:
coefficients du modele optimale avec lambda optimale.
## 11 x 1 sparse Matrix of class "dgCMatrix"
## s1
## (Intercept) -1.185571e+06
## QualiteMateriaux 1.792267e+04
## DateConstruction 2.471222e+02
## DateRenovation 3.177389e+02
## SuperficieSousol 2.050274e+01
## PiedsCarresEtage1 1.639133e+01
## SurfaceHabitable 4.067793e+01
## TotalFullBath -2.346377e+03
## TotalPiece 2.012976e+03
## GarageNbrVoiture 9.547288e+03
## Garagetaille 2.254022e+01
Prediction:
## s0
## 1 215291.4
## 2 172821.5
## 3 217339.8
## 4 195155.7
## 5 280151.9
## 6 152925.3
Graphiques des valeurs predites et des valeurs initiales:
Erreur du model:
v