par , 02/05/2016 à 16h00 (904 Affichages)
La régression linéaire est un des premiers outils de base pour la modélisation d'un paramètre par rapport à un ensemble de variables. La régression linéaire est un des outils du Deep Learning. Sa simplicité permet de le rendre Scalabe et Distribuer. Pour comprendre de façon graphique et simple ce qui se passe, on peut dire que la régression linéaire permet à partir d'un nuage de point de tracer une droite entre ces points.
Y = AX + B
La modélisation générale est définie en général Y = AX + B
Avec :
A un nombre réel pour le cas de dimension 1 et une matrice pour les dimensions supérieures de dimension nxm.
X le vecteur des données de dimension m.
Y le vecteur des données a modélisé de dimension m.
B Un vecteur de dimension n.
Structure des données en entré
Pour l'utilisation de logiciel de statistique, les données doivent avoir une organisation particulière. L’intérêt des outils de "reshaping" permet de passer d'une représentation par exemple en ligne à celle en colonne notée ci-dessous et qui est nécessaire pour la majorité des outils statistiques. Mais l'explication de ce type d'outil ne sera pas développée dans ce poste. Le tableau suivant permet de voir comment s'organisent ces données.
Exemple :
A[1][/n] |
A[2][/n] |
A[3][/n] |
... |
A[n][/n] |
Y |
1 |
5 |
2 |
... |
8 |
4 |
3 |
2 |
4 |
... |
12 |
7 |
7 |
6 |
8 |
.. |
5 |
3 |
... |
... |
... |
... |
... |
... |
Exemples Julia
Premier exemple en Julia. soit trois points on cherche la droite qui est au plus près de l'ensemble des points.
1 2 3 4 5 6
| using DataFrames # Appelle de la librairie DataFrames
using GLM # Appelle de la librairie linear model and generalized linear model
data=DataFrame(X=[1,2,3],Y=[2,4,7]) # On prend trois points X et Y.
OLS = glm(Y~X,data,Normal(),IdentityLink()) # On calcule la droite linéaire.
# data.Normal est à la résolution au sens des moindre carré ou des équivalents.
# IdentityLink correspond a une loi Normal sans transformation. |
1 2 3 4 5 6 7
|
DataFrameRegressionModel{GeneralizedLinearModel{GlmResp{Array{Float64,1},Normal,IdentityLink},DensePredChol{Float64,Cholesky{Float64}}},Float64}:
Coefficients:
Estimate Std.Error z value Pr(>|z|)
(Intercept) -0.666667 0.62361 -1.06904 0.2850
X 2.5 0.288675 8.66025 <1e-17 |
Comment lire les résultats.
Le B correspond a intercept
Le A correspond au X
Estimate est la valeur de la variable A ou des variables X.
Std.Error est la distance quadratique moyenne entre les points et la droites.
z value
Pr(>|z|) est la p-value ou le niveau de confiance que l'on peut donner à ce résultat.
Exemples R
1 2
| data = data.frame(X=c(1,2,3), Y=c(2,4,7))
summary(glm(Y~X, data=data, normal())) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
Call:
glm(formula = Y ~ X, data = data)
Deviance Residuals:
1 2 3
0.1667 -0.3333 0.1667
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.6667 0.6236 -1.069 0.4788
X 2.5000 0.2887 8.660 0.0732 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for gaussian family taken to be 0.1666667)
Null deviance: 12.66667 on 2 degrees of freedom
Residual deviance: 0.16667 on 1 degrees of freedom
AIC: 5.8425
Number of Fisher Scoring iterations: 2 |
Comment lire les résultats.
Deviance Residuals correspond à la répartition des l'erreurs.
Le B correspond a intercept
Le A correspond au X
Estimate est la valeur de la variable A ou des variables X.
Std.Error est la distance quadratique moyenne entre les points et la droites.
z value
Pr(>|z|) est la p-value ou le niveau de confiance que l'on peut donner à ce résultat.
AIC est un type d'erreur.