# reglin

Régréssion linéaire

## Séquence d'appel

    [a,b,sig]=reglin(x,y)

## Paramètres

x, y, a, b, sig

  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. `sig` est l'écart-type du résidu. `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)`.

Si `x` ou `y` contient des NaN, utilisez nanreglin.

## Exemples

    // Simulation de données pour a(3, 5) et b(3, 1)
    x  = rand(5, 100);
    aa = testmatrix("magi", 5); aa = aa(1:3, :);
    bb = [9; 10; 11];
    y  = aa*x +bb*ones(1, 100)+ 0.1*rand(3, 100);

    // Identification
    [a, b, sig] = reglin(x, y);
    max(abs(aa-a))
    max(abs(bb-b))

    // Autre exemple : adaptation d'un polynôme
    f = 1:100; x = [f.*f; f];
    y = [2 3]*x + 10*ones(f) + 0.1*rand(f);
    [a, b] = reglin(x, y)

Exemple graphique :

    // Génération d'une fonction impaire (symétrique à l'origine)
    x = -30:30;
    y = x.^3;

    // Extraction de la moyenne des moindres carrés de cette fonction et affichage
    [a, b] = reglin(x, y);
    plot(x, y, "red")
    plot(x, a*x+b)

x = -30:30; y = x.^3; [a, b] = reglin(x, y); plot(x, y, "red") plot(x, a*x+b)

Exemple avec un NaN :

    // Mêmes valeurs que dans l'exemple précédent, mais avec un NaN
    x = -30:30;
    y = x.^3;
    y(10) = %nan;

    // Extraction de la moyenne des moindres carrés de cette fonction et affichage
    [a, b] = reglin(x, y);
    plot(x, y, "red")
    plot(x, a*x+b)
    // Le point [x(10), y(10)] a été ignoré, résultant en une valeur non-nulle pour b.

x = -30:30; y = x.^3; y(10) = %nan; [a, b] = nanreglin(x, y); plot(x, y, "red") plot(x, a*x+b)

## Vori aussi

- nanreglin
- pinv
- leastsq
- qr