// création des vecteurs
agri={100,60,76,74,90,93,102,98,103,110,117,118,112,115,116,121,134,130};
indu={100,50,84,99,113,122,128,143,145,146,159,172,188,204,213,220,242,254};
// affichage des points
for i=1: 18, plot2d(agri(i),indu(i),-4), end;
// centre de gravité
xbarre=sum(agri)/18;
ybarre=sum(indu)/18;
plot2d(xbarre,ybarre,-2);
// titre du graphique
xtitle(['Le nuage et son centre de gravité'], 'agri', 'indu');
// nouvelle fenêtre par défaut
xset('window', 1);
// pente et ordonnée à l'origine de la droite des moindres carrés
for i=1: 18,prodxy(i)=(agri(i)-xbarre)*(indu(i)-ybarre),end;
for i=1: 18,prodxx(i)=(agri(i)-xbarre)^2,end;
for i=1: 18,prodyy(i)=(indu(i)-ybarre)^2,end;
achapeau=sum(prodxy)/sum(prodxx);
bchapeau=ybarre-achapeau*xbarre;
// tracer de la droite de régression
function y=f(x);y=achapeau*x+bchapeau;endfunction;
fplot2d(min(agri) :1 :max(agri),f);
// de agri sur indu ?
achapeau2=sum(prodxy)/sum(prodyy);
bchapeau2=xbarre-achapeau2*ybarre;
function y=f2(x);y=achapeau2*x+bchapeau2;endfunction;
fplot2d(min(indu) :1 :max(indu),f2);
// carré du coefficient de corrélation linéaire
Rdeux=(sum(prodxy)^2)/(sum(prodxx)*sum(prodyy));
// résidus
for i=1:18,res(i)=indu(i) - f(agri(i)),end;
// on affiche les résidus
xset('window',2);
for i=1:18, plot2d(i, res(i), -1),end;
function y=zero(x);y=0;endfunction;
fplot2d(min(agri):1:max(agri),zero);
// histograme des résidus
xset('window',3);
r=[-54 : 10 : 45];
histplot(r,res);