R² pour régression linéaire forcée par zéro

Sheldor

XLDnaute Occasionnel
Supporter XLD
Bonjour,
désolé par avance si j'ai mal cherché mais je ne trouve pas comment faire pour avoir dans une cellule le R² d'une régression linéaire si je force la courbe par zéro.
sur le graph j'ai une valeur, dans mon calcul... une autre...
voir pj

grand merci d'avance

nico
 

Pièces jointes

  • regression.xls
    20 KB · Affichages: 98
  • regression.xls
    20 KB · Affichages: 115
  • regression.xls
    20 KB · Affichages: 97

Sheldor

XLDnaute Occasionnel
Supporter XLD
Re : R² pour régression linéaire forcée par zéro

et pour ces même données j'obtiens par le logiciel de stat R²=0.959 et la pente=13.578

R² qui vient de
Kvalseth, T.O. (1985) “Cautionary note about R2.” The American Statistician: 39: 279-285.

mais je n'y ai pas accès
 

Sheldor

XLDnaute Occasionnel
Supporter XLD
Re : R² pour régression linéaire forcée par zéro

on pourrait calculer le R² de Kvalseth, j'ai trouvé ceci:

my searches online have provided me with some insightful work by
Kvalseth (1985). Apparently, he has an alternative R-squared which
should work across models (including no constant or 0 constant
models).

It's specified by 1 - [(Y-XBhat) ' (Y-XBhat) / Y'Y - Ymean squared]

mais perso je ne comprends pas la formule...
 

MJ13

XLDnaute Barbatruc
Re : R² pour régression linéaire forcée par zéro

R3

D'après l'exemple donnée dans la biblio, la solution calculée sur la feuille serait la bonne? C'est vrai qu'avec un R² de 20, cela fait peut être un peu beaucoup :eek:. Me trompe-Je:confused:
 

Pièces jointes

  • ExemplePbR2.xls
    88 KB · Affichages: 62

Misange

XLDnaute Barbatruc
Re : R² pour régression linéaire forcée par zéro

Bonjour.
J'ai rouvert le classeur d'origine, revalidé la formule : il m'a immédiatement sorti 0,75081761
Mais je ne sais plus si j'avais eu ça la première fois. J'avais commencé par :
VB:
=DROITEREG($B$7:$B$11;$A$7:$A$11;0;1)
validé en matriciel Ctrl+Maj+Entrée sur une plage de 3 lignes 2 colonnes. Qu'est-ce que ça donne chez vous ?
Moi j'obtiens:
13,57836990
1,40665424#N/A
0,7508176150,247296



Re bonjour

13.57836990
1.40665424#N/A
0.9588390750.247296

seule différence apparente, la virgule comme séparateur décimal chez toi, le point chez moi... Je doute que ce soit la raison
La formule =INDEX(DROITEREG(B7:B11;A7:A11;0;1);3;1) ne fait jamais que renvoyer la valeur de la troisième ligne et de la première colonne de cette matrice.
 

Sheldor

XLDnaute Occasionnel
Supporter XLD
Re : R² pour régression linéaire forcée par zéro

pas évident leurs explications traduite automatiquement:

"Une solution de contournement a été fournie pour trouver la bonne valeur R au carré. Si la définir Intercept = 0 case est cochée (de loin le cas plus courant dans la pratique), il n'y a aucun problème avec la valeur de l'outil graphique de R au carré."

donc sur le graph c'est bon?
je me suis dit que ce serait plus clair en anglais, si on regarde en parralèle la version anglaise, la version française change:

Un travail autour ont été fourni pour trouver la bonne valeur de R2. Si la définir Intercept = 0 boîte est rien n'est fait (de loin le cas le plus fréquent en pratique), il n'y a aucun problème avec la valeur de l'outil graphique de R2.

et en anglais:

A work around has been provided to find the correct R-squared value. If the Set Intercept = 0 box is left unchecked (by far the more typical case in practice), there is no problem with the chart tool's value of R-squared.

"left unchecked" c'est un peu l'inverse de "coché"....

donc si c'est coché on est cooked ?
 

Misange

XLDnaute Barbatruc
Re : R² pour régression linéaire forcée par zéro

Fie toi toujours à la version anglaise !
ils confirment ce qu'on sait déjà : quand la case n'est pas cochée, la valeur qui apparait sur le graphique est bonne (et conforme à la formule)


En fait je n'avais pas regardé ce lien de MS en détail mais ils donnent la solution

Pour excel 2003 et suivantes, ils ont corrigé la fonction droite reg et la bonne valeur c'est celle que tu obtiens avec
=INDEX(DROITEREG(yconnus;xconnus;faux;vrai);3;1)

pour les versions antérieures :
tu sélectionne 10 cellules (2 colonnes et 5 lignes)
tu tapes = droitereg(y connus;x connus; faux;vrai) et tu valides en matricielle

tu calcules la somme des carrés des y
=SOMME.CARRES(B7:B11) disons somsq
tu prends la valeur résiduelle des moindres carrés disons "Residu" qui apparait dans la ligne 5, colonne 2
et tu fais
r²=(somsq-residu)/somsq
de fait tu retombes bien sur la valeur du R² qui apparait en ligne 3 colonne 1.


Donc contrairement aux apparences, c'est bien 0.9588 et non pas 0.7508 qui est la bonne valeur. Ce qui apparait sur le graphique est FAUX. Franchement c'est contre intuitif !

OUF, cette fois je crois que c'est clair (en tous cas pour moi).
Ca tombe bien :
1) je ne force quasiment jamais à 0 les régressions
2) j'utilise toujours droitereg pour sortir les paramètres et jamais les valeurs qui apparaissent sur les graphiques.
 

MJ13

XLDnaute Barbatruc
Re : R² pour régression linéaire forcée par zéro

Re

Donc contrairement aux apparences, c'est bien 0.9588 et non pas 0.7508 qui est la bonne valeur. Ce qui apparait sur le graphique est FAUX. Franchement c'est contre intuitif !

Merci Misange :) pour cet éclaircissement. Cela confirme ce que je subodorais :).
 

Sheldor

XLDnaute Occasionnel
Supporter XLD
Re : R² pour régression linéaire forcée par zéro

re donc...

Description of the effects of the improved statistical functions for the Analysis ToolPak in Excel

chapitre régression, pour x = 1/2/3 et y= 11/12/13
avec l'exemple on obtient

avant excel 2003 R²=-20.4285714
à partir d'excel 2003 R²=0.901250823

sous excel 2003 on obtient le premier par le graph et le deuxième par droitereg, comme si la correction avait été apportée à l'un et pas l'autre

je suis un peu perdu: on peut obtenir la pente avec droite reg? pour cet exemple sur le graph j'ai 5.2857143 mais dans mon droitereg je ne la vois pas...
 

Misange

XLDnaute Barbatruc
Re : R² pour régression linéaire forcée par zéro

Bien sur qu'avec droitereg on peut avoir la pense, le b le coeff de régression.Puisque tu as téléchargé le classeur fc-régression (dont je suis l'auteur), c'est tout expliqué dedans !
et tu l'as dans le classeur que tu as posté au #1
=INDEX(DROITEREG(B7:B11;A7:A11);1;1) te donne la pente
=INDEX(DROITEREG(B7:B11;A7:A11);1;2) l'ordonnée à l'origine (le b)
=INDEX(DROITEREG(B7:B11;A7:A11);3;1) le r²

ces trois formules font référence à la position de ces éléments de la matrice renvoyée par droitereg.
Droite reg est une fonction matricielle parce qu'elle utilise des plages en entrée mais qui sort une matrice en sortie.
reprends le classeur fc-regression c'est expliqué.
 

Discussions similaires

Réponses
1
Affichages
642

Statistiques des forums

Discussions
312 229
Messages
2 086 425
Membres
103 206
dernier inscrit
diambote