# nanreglin

Régréssion linéaire

## Séquence d'appel

    [a,b]=nanreglin(x,y)

## Paramètres

x, y, a, b

  Vecteurs or Matrices numériques.

## Description

Résout le problème de régréssion `y=a*x+b` au sens des moindres carrés. `x` et `y` sont deux matrices de taille `x(p,n)` et `y(q,n)`, où `n` est le nombre d'échantillons.

L'estimateur `a` est une matrice de taille `(q,p)` et `b` est un vecteur de taille `(q,1)`.

Chaque ligne de `y` est traitée comme un problème indépendant, si `x` ou `y` contient un NaN (`x(i,j) = %nan` ou `y(i,j) = %nan`), alors `x(:,j)` et `y(i,j)` sont ignorés, comme si le point [x(:,j); y(i,j)] n'existait pas.

## Exemples

Exemple graphique #1 :

    // Dans l'exemple suivant, les deux problèmes représentent deux lignes droites :
    // l'une va de (0,0) à (10,10) et l'autre va de (0,20) à (10,30).
    // reglin et nanreglin trouvent les mêmes valeurs parce-que tous les points sont alignés et les NaN ont été ignorés.
    subplot(211)
    x = 0:10;
    y = 20:30;
    [a1, b1] = reglin(x, [x ; y]);
    plot(x', (a1*x+repmat(b1,1,11))', "red")

    subplot(212)
    y2 = y;
    y2(2:10) = %nan; // Leaving y2(1) and y2(11) unchanged.
    [a2, b2] = nanreglin(x, [x ; y2])
    plot(x', (a2*x+repmat(b2,1,11))', "blue")

subplot(211) x = 0:10; y = 20:30; [a1, b1] = reglin(x, [x ; y]); plot(x', (a1*x+repmat(b1,1,11))', "red") subplot(212) y2 = y; y2(2:10) = %nan; [a2, b2] = nanreglin(x, [x ; y2]) plot(x', (a2*x+repmat(b2,1,11))', "blue")

Exemple graphique #2 :

    // Maintenant les deux problèmes représentent une ligne droite (reglin(x, x)) de (0,0) à (2,2),
    // mais alors que le deuxième argument du premier problème (reglin(x, y)) représente
    // une droite plate (d'équation y = 1), le second argument du deuxième problème
    // (reglin(x, y2)) ignore le point central de y (mis à %nan) donc la droite est maintenant
    // d'équation y = 0, parce-que les deux points restants sont (0,0) et (2,0).
    subplot(211)
    x = 0:2;
    y = [0 3 0];
    [a1, b1] = reglin(x, [x ; y]);
    plot(x', (a1*x+repmat(b1,1,3))', "red")

    subplot(212)
    y2 = y;
    y2(2) = %nan; // y2 = [0 %nan 0];
    [a2, b2] = nanreglin(x, [x ; y2]);
    plot(x', (a2*x+repmat(b2,1,3))', "blue")

subplot(211) x = 0:2; y = [0 3 0]; [a1, b1] = reglin(x, [x ; y]); plot(x', (a1*x+repmat(b1,1,3))', "red") subplot(212) y2 = y; y2(2) = %nan; // y2 = [0 %nan 0]; [a2, b2] = nanreglin(x, [x ; y2]); plot(x', (a2*x+repmat(b2,1,3))', "blue")

## Voir aussi

- reglin
- pinv
- leastsq
- qr

## Historique

5.5.0
Introduction