Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parLuc Lanthier Modifié depuis plus de 8 années
1
Cours 7 Les régressions linéaires
2
Rappel théorique Existe-t-il une loi permettant de prévoir la résistance à la traction Y en fonction de la teneur en carbone X ?
3
Est-il possible de trouver une fonction numérique f telle que : Y = f ( X ) ? S'il existe une fonction f telle que Y = f ( X ), alors on dira que f est un modèle du phénomène étudié. X est la variable explicative. Y est la variable expliquée.
4
Les points du nuage sont presque alignés. Il est donc raisonnable de chercher une fonction f qui soit une fonction affine. Autrement dit, on cherche une fonction f, un modèle tel que : Y = f ( X ) = a X + b
5
Si xi est une variable explicative fixée par l'expérimentateur, il mesure pour cette valeur la résistance à la traction de la tige et trouve yi. yi est la valeur observée de la variable expliquée. yi= a xi + b est la valeur théorique ou la valeur expliquée par le modèle ei = yi -yi est le résidu du modèle. | ei | est l'erreur du modèle yi =yi + ei
6
Yi est la composante prévisible par le modèle. ei est la composante imprévisible due aux erreurs de mesure, ou à des facteurs négligés par le modèle. On peut choisir un modèle y = a x + b rendant minimum la somme des carrés des résidus (SCR) Le modèle obtenu par cette méthode, s'appelle l'ajustement affine de Y en X par la méthode des moindres carrés. Le modèle affine Y = a X + b d'ajustement de Y en X par la méthode des moindres carrés s'obtient en prenant :
7
a = cov(X,Y)/s^2(X) et en écrivant que la droite d'équation Y = a X + b passe par le point moyen G (m(X),m(Y)) du nuage : b = m(Y)- a *m(X)
8
Changement de variable Evolution du coût de la construction : essai d'ajustement à un modèle exponentiel Considérons des observations ( xi, yi ) relatives à deux variables X et Y, et le nuage de points correspondant : Par exemple, l'évolution de l'indice du coût de la construction selon l'INSEE (base 100 en 1953)
9
X = rang de l'année Y = indice
10
Essayons d'expliquer la variation de l'indice Y, en fonction du rang X de l'année par un modèle affine : Y = f ( x ) = a X + b en ajustant une droite à ce nuage de points par la méthode des moindres carrés. On obtient l'équation de la droite d'ajustement de Y en X : Y = 12.418 X + 161
11
Calculons les valeurs théoriques prévues par le modèle, et les résidus : Nuage des résidus
12
Le nuage des résidus a une forme curviligne qui indique que le modèle affine n'est pas adéquat pour représenter le phénomène. On procède alors par changement de variable.On pose : V = log Y Si on procède à un ajustement affine de V en X : log Y = V = c X + d Alors : Y = k^aX avec k = 10d et a = 10c et on obtient Y comme fonction exponentielle de X.
14
Les points du nuage semblent assez bien alignés. La droite d'ajustement de V en X a pour équation : V = 0.0228 X + 2.2296
15
résultat De : V = log Y = 0.0228 X + 2.2296 on tire : Y = ( 169.657 ) * ( 1.054 )^X On prendra cette relation comme modèle du phénomène considéré.
16
On aurait pu procéder à un autre changement de variable en posant : U = log X V = log Y En procédant à un ajustement affine de V en U : log Y = V = c X + d = c log X + d On obtient : Y = k Xc où k = 10d et Y apparaît comme une fonction puissance de X.
18
La comparaison du modèle exponentiel : Y = ( 169.057 ) ( 1.054 )^X et du modèle par une fonction puissance : Y = ( 169.26 ) X^0.1926 montre que le modèle exponentiel est mieux adapté. D'autres changements de variables peuvent être utilisés, pour se ramener à un ajustement affine en fonction du modèle que l'on veut ajuster aux données.
20
Qualité d'un ajustement SCT = ( yi - m(Y) )² est la somme des carrés totale, somme des carrés des écarts à la moyenne des valeurs observées. SCA = (yi-m(Y) )² est la somme des carrés des écarts des prévisions à la moyenne. SCR = ( yi - yi)² est la somme des carrés des résidus.
21
SCT = SCA + SCR En divisant cette égalité par n on obtient ² ( Y ) = (1/n) ( yi - m(Y) )² = (1/n)SCT est la variance des valeurs observées ou variance totale. VE = (1/n) (yi - m(y))² = SCA est la variance expliquée par l'ajustement ou variance des prévisions yi. VR = (1/n) ( yi -yi )² est la variance résiduelle. SCA = R * SCT = * n où n est le nombre d'observations. VE = R V ( Y ) = = a Cov ( X, Y ) où : a = Cov ( X, Y ) / s² ( X ) est le coefficient directeur de la droite d'ajustement de Y en X. SCR = SCT - SCA = ( 1 - R ) s² ( Y ) * n VR = s² ( Y ) - VE = ( 1 - R ) s² ( Y )
22
On a : ² ( Y ) = VE + VT L'ajustement est d'autant meilleur que SCR est proche de 0. SCR = 0 si et seulement si les points du nuage sont alignés. Si SCR = 0, SCT = SCA L'ajustement est d'autant meilleur que : R= SCA/SCT est proche de 1 R se nomme le coefficient de détermination. R est compris entre 0 et 1 R se calcule facilement par la formule : R =Cov(X,Y)^2/ ² ( X ) ² ( Y )
23
Les analyses statistiques avec R Modèles linéaires,lm() Modèles linéaires généralisés,glm() Analyse de variance, aov()
24
Généralités L ’argument principal est une formule du type: réponse ~ prédicteur exemples: data(I=InsectSprays) aov(sqrt(count) ~ spray,data=I) équivalent à : aov(sqrt(I$count) ~ I$spray) ou à aov(sqrt(I[,1]) ~ I[,2])
25
Les formules y~model ou y est la réponse analysée et model est un ensemble de termes pour lesquels les paramètres sont estimés attention: les symboles arithmétiques ont ici une signification particulière exemples: y~x1+x2 désigne le modèle y=ax1+bx2+c y~I(x1+x2) désigne le modèle y=a(x1+x2)+c y~poly(x,2) désigne le modèle y=ax^2+bx+c y~x1+x2 désigne le modèle y=ax1+bx2+c y~x1-1 désigne le modèle y=ax1
26
Les fonctions génériques Les objets qui contiennent les résultats d ’une analyse, ont un attribut particulier, la classe. Certaines fonctions, dites génériques, permettent d ’extraire des informations d ’un objet résultat exemples: summary()qui a une action différente sur un objet de classe lm(), aov(),...
27
apropos("^summary") [1] "summary.aov" "summary.aovlist" "summary.glm" [4] "summary.infl" "summary.lm" "summary.manova" [7] "summary.mlm" "summary.stepfun" "summaryRprof" [10] "summary" "summary.connection" "summary.data.frame" [13] "summary.Date" "summary.default" "summary.factor" [16] "summary.matrix" "summary.POSIXct" "summary.POSIXlt" [19] "summary.table"
28
Des fonctions génériques plot() print()résumé succint summary()résumé détaillé df.residualsnbre de ddl résiduels coefcoefficients estimés residualsrésidus deviancedéviance fittedvaleurs ajustées par le modèle logLiklogarithme de la vraisemblance...
29
Un objet-résultat, produit par aov(), lm()…. est généralement une liste,bien qu ’il ne soit pas affiché comme tel, dont les éléments peuvent être affiché par la fonction names() ou attributes() ex names(res.reg)pour une régréssion linéaire "coefficients" "residuals" "effects" "rank" "fitted.values" "assign" "qr" "df.residual" "xlevels" "call" "terms" "model"
30
Régréssion linéaire simple Sur des données fictives: x=1:100 x=sample(x,30,replace=TRUE) x [1] 62 18 9 67 43 38 57 12 41 29 69 76 77 46 42 75 32 74 6 40 51 88 61 3 38 [26] 71 81 76 94 34 y=3+7*x+rnorm(30,0,100) Y [1] 340.61710 254.86969 54.52298 463.78335 379.30676 177.27873 555.98297 [8] -13.48922 273.11081 187.46739 439.59869 380.92303 537.40362 414.12641 [15] 299.09269 494.05965 415.9
31
plot(x,y)
32
res.reg=lm(y~x); Call: lm(formula = y ~ x) Coefficients: (Intercept) x 13.22 6.71 Droite de régression: y=6,71 *x +13.22
33
De l'objet de classe lm res.reg, on peut extraire les principaux résultats de la régréssion estimée,à savoir Les coefficients de la régréssion coef(res.lin) ou res.lin$coef Le vecteur des résidus residuals(res.reg) La déviance résiduelle deviance(res.reg) La formule formula(res.reg) Quatre graphiques utiles pour le diagnostic plot(res.reg) Valeurs prédites par le modèle fitted(res.lin)
34
plot(x,y); abline(res.reg)
35
summary(res.reg) Residuals: Min 1Q Median 3Q Max -142.29 -58.64 -17.17 63.33 187.99 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 13.2213 37.0548 0.357 0.724 x 6.7105 0.6587 10.188 6.37e-11 Residual standard error: 90.65 on 28 degrees of freedom Multiple R-Squared: 0.7875, Adjusted R- squared: 0.78
36
Plus sophistiquée... La croissance d ’une bactérie (par jour), modélisé par N=N0 e^kt t=2:12; N=c(55,90,135,245,403,665,1100,1810,3000,4 450,7350); Le modèle est le suivant;
37
t=c(2:12); N=c(55,90,135,245,403,665,1100,1810, 3000,4450,7350) T=data.frame(t,N,y=log(N));T; > T t N y t N y 1 2 55 4.007333 2 3 90 4.499810 3 4 135 4.905275 4 5 245 5.501258…..
38
Calcul de moyenne et écart-type apply(T,2,mean); t N y 7.000000 1754.818182 6.475094 apply(T,2,sd); t N y 3.316625 2326.625317 1.640357
39
plot(T$t,T$N)
40
plot(T$t,T$y)
41
droite de regression ll=lm(y~t,data=T);ll; Call: lm(formula = y ~ t, data = T) Coefficients: (Intercept) t 3.0142 0.4944
42
abline(ll);
43
summary(ll) Call: lm(formula = y ~ t, data = T) Residuals: Min 1Q Median 3Q Max -0.08656 -0.02117 0.01500 0.02912 0.04802 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 3.014162 0.032947 91.49 1.13e-14 *** t 0.494419 0.004289 115.27 1.41e-15 *** --- Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
44
summary(ll) suite Residual standard error: 0.04499 on 9 degrees of freedom Multiple R-Squared: 0.9993, Adjusted R-squared: 0.9992 F-statistic: 1.329e+04 on 1 and 9 DF, p-value: 1.413e-15
45
Analyses supplémentaires à partir d ’un objet add1() : teste successivement tous les termes qui peuvent être ajoutés à un modèle drop1():teste successivement tous les termes qui peuvent être enlevés à un modèle anova(): calcule une table d ’analyse de variance ou de deviance pour un ou plusieurs modèles predict(): calcule les valeurs prédites pour des nouvelles données update(): réajuste un modèle...
46
Les tests statistiques les test du chi-deux
47
La fonction chisq.test(x,y,logical,p) Premier exemple: on lance un dé 300 fois et on obtient le résultat suivant: 1 2 3 4 5 6 43 49 56 45 66 41 x=c(43, 49, 56, 45, 66, 41) prob=rep(1/6,6) chisq.test(x,p=prob) Chi-squared test for given probabilities data: x X-squared = 8.96, df = 5, p-value = 0.1107
48
Second exemple sur un tableau de contingence Exemple d ’un tableau donnant la cécité en fonction du sexe: tab=matrix(c(442,514,38,6),nrow=2,byrow=TRUE) colnames(tab)=c("homme","femme") rownames(tab)=c("voyant","aveugle") homme femme voyant 442 514 aveugle 38 6
49
X2=chisq.test(tab,correct=FALSE) On teste s ’il y a une relation entre sexe et cécité (l ’hypothèse par défaut est celle d ’indépendance) Pearson's Chi-squared test data: tab X-squared = 27.1387, df = 1, p-value = 1.894e-07
50
attributes(x2) $names [1] "statistic" "parameter" "p.value" "method" "data.name" "observed" [7] "expected" "residuals" $class [1] "htest » par exemple:
51
x2$expected homme femme voyant 458.88 497.12 aveugle 21.12 22.88 valeurs attendues sous hypothèse d ’indépendance x2$residuals homme femme voyant -0.787994 0.7570801 aveugle 3.673039 -3.5289413 sum(x2$residuals^2) 27.13874 la somme des carrés des résidus est la valeur du chi-deux
52
Soit le tableau de contingence suivant: roux blond brun bleu 13 20 7 marron 24 10 18 le test du chi-deux d ’indépendance s ’effectue ainsi: chisq.test(m)
53
Pearson's Chi-squared test data: m X-squared = 10.0494, df = 2, p-value = 0.006574 on teste l ’hypothèse nulle suivante « H0:il y a indépendance entre la couleur des yeux et celle des cheveux »
54
Test sur une moyenne: prop.test() Pour comparer deux ou plusieurs proportions sur des échantillons de grande taille: prop.test(x, n, p = NULL,alternative = c("two.sided", "less", "greater"), conf.level = 0.95, correct = TRUE)
55
D'autres tests sous R var.test() Il s'agit d'un test F de comparaison des variances de deux échantillons indépendants provenant de populations normales cor.test Test de significativité du coefficient de correlation calculé sur 2 vecteurs
56
suite ks.test:test pour deteminer si un échantillon provient d'une population dont la loi est connue, ou bien test pour déterminer si deux échantillons ont la même distribution
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.