Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Português - 日本語 - Русский

Please note that the recommended version of Scilab is 6.0.0. This page might be outdated.
See the recommended documentation of this function

Aide de Scilab >> Statistiques > Data with Missing Values > nanreglin

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")

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")

Voir aussi

  • reglin — Régréssion linéaire
  • pinv — pseudo-inverse
  • leastsq — Solves non-linear least squares problems
  • qr — factorisation QR

Historique

VersionDescription
5.5.0 Introduction
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Oct 02 13:54:33 CEST 2014