MATH_RegressionLineaire [Statistiques]
Par Antoine Galmiche (Math4D v1)
Nouvelle recherche
Si (Faux)
` MATH_RegressionLineaire [Antoine Galmiche 04/2002]
` ---------------------------------------------
` Rappels mathématiques :
` La droite de régression linéaire représente le lissage par
` une droite d'un nuage de points
` ---------------------------------------------
` MATH_RegressionLineaire(->TableauX ;->TableauY ;->TableauRésultat)
` TableauX (Pointeur) Pointeur tableau réel des abscisses qui doivent être triés
` TableauY (Pointeur) Pointeur tableau réel des ordonnées
` TableauRésultat (Pointeur) Pointeur tableau points de la droite de régression
` Les coefficients A et B de la droite y=Ax + B sont placés ainsi :
` A dans TableauX{0} et B dans TableauY{0}
` ---------------------------------------------
` MATHERROR
` 0 -> Pas d'erreur
` -1 -> Abscisses non triées
` -2 -> Tableaux de tailles différentes
`
Fin de si
C_ENTIER LONG(MATHERROR)
C_POINTEUR($1;$2;$3;$4) ` tab abscisses ; tab ordonnées ; tab droite
C_ENTIER LONG($k;$i)
C_REEL($test;$b0;$b1)
MATHERROR:=0
$k:=Taille tableau($1->)
Si ($k#0)
$test:=$1->{1}
Boucle ($i;2;$k)
Si ($test>($1->{$i}))
MATHERROR:=-1
$i:=$k
Sinon
$test:=$1->{$i}
Fin de si
Fin de boucle
Si (Taille tableau($2->)#$k)
MATHERROR:=-2
Fin de si
Si (MATHERROR=0)
TABLEAU REEL($tab;$k) ` résultat
C_REEL($x2;$y;$x;$xy)
$x2:=0
$y:=0
$x:=0
$xy:=0
Boucle ($i;1;$k)
$x2:=$x2+($1->{$i}^2) ` Somme(x2)
$y:=$y+$2->{$i} ` Somme(y)
$x:=$x+$1->{$i} ` Somme(x)
$xy:=$xy+($1->{$i}*$2->{$i}) ` Somme(xy)
Fin de boucle
` calcul du b0 dans y = b0 + b1x
$b0:=((($x2*$y)-($x*$xy))/(($k*$x2)-($x^2)))
$b1:=((($k*$xy)-($x*$y))/(($k*$x2)-($x^2)))
Boucle ($i;1;$k)
$tab{$i}:=$b0+(($1->{$i})*$b1)
Fin de boucle
COPIER TABLEAU($tab;$3->)
$1->{0}:=$b1
$2->{0}:=$b0
Fin de si
Fin de si