Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2025.0.0 - Français


variance

variance d'un vecteur, matrice (voire hypermatrice) de nombres réels ou complexes

Séquence d'appel

[s, [mc]] = variance(x [,orien [,m]])

[s, mc] = variance(x)
[s, mc] = variance(x, "r"|1 )
[s, mc] = variance(x, "c"|2 )
[s, mc] = variance(x, "*"  , %nan)
[s, mc] = variance(x, "r"|1, %nan)
[s, mc] = variance(x, "c"|2, %nan)
s = variance(x, "*", m)
s = variance(x, "r", m)
s = variance(x, "c", m)

Paramètres

x

vecteur ou matrice de nombres réels ou complexes. Une hypermatrice est acceptable uniquement sans les options "r" ou "c" : variance(x) or variance(x,"*",m)

orien

variance selon les lignes ou les colonnes de x. Les valeurs possibles sont

  • 1 or "r" : calcul par colonne. Le résultat est un vecteur ligne
  • 2 or "c" : calcul par ligne. Le résultat est une colonne
  • "*" : calcul tous les éléments de x confondus (mode utilisé par défaut); requis si le 3ème paramètre m doit être utilisé.

m

Espérance mathématique de la loi de distribution de probabilité sous-jacente (supposée connue).

  • mode "*" (par défaut) : m doit être scalaire
  • mode "r" or 1 : m un vecteur ligne à size(x,2) éléments. La variance des éléments de la colonne #j de x est calculée en utilisant m(j) comme moyenne pour la colonne. Si m est la même pour toutes les colonnes, sa valeur scalaire peut être fournie au lieu d'une ligne.
  • mode "c" ou 2 : m un vecteur colonne à size(x,1) éléments. La variance des éléments de la ligne #i de x est calculée en utilisant m(i) comme moyenne pour la ligne. Si m est la même pour toutes les lignes, sa valeur scalaire peut être fournie au lieu d'une colonne.

Lorsque m n'est pas indiquée, la variance est estimée en divisant par (n-1) (non n) la distance quadratique totale des n valeurs à la moyenne calculée mean(x)(ou mean(x,"c") ou mean(x,"r")) (n vaut length(x) ou size(x,1) ou size(x,2)). Si les éléments de x sont indépendants entre eux, l'estimation de la variance retournée est non biaisée.

Sinon, la variance est estimée en divisant par n (au lieu de n-1) la distance quadratique totale des valeurs x(k) à m (n valant toujours length(x) ou size(x,1) ou size(x,2)). Alors :

  • Si une véritable valeur m indépendante des éléments de x est fournie, elle est utilisée comme moyenne de référence dans le calcul de la variance. La valeur obtenue et retournée pour celle-ci est alors réputée non biaisée.
  • Si la valeur spéciale m=%nan est fournie, la variance est toujours "normalisée" par n (non n-1) mais est estimée en utilisant l'estimation "empirique" m=mean(x) de la moyenne de référence (ou m = mean(x,"c") ou m = mean(x,"r")). Comme m=%nan n'apporte aucune information nouvelle à "l'équation", celle-ci retourne une estimation biaisée de la variance.

s
Estimation de la variance des valeurs de x (non pondérées). s est un scalaire ou un vecteur ligne ou colonne selon l'option orien utilisée.
mc
Moyenne calculée à partir de x (= mean(x,..)) et utilisée comme référence dans le calcul de la variance. Valeur scalaire ou en vecteur colonne ou ligne, selon l'option orien utilisée.

Description

Cette fonction calcule la variance d'un ensemble de nombres réels ou complexes d'un vecteur, d'une matrice (voire d'une hypermatrice) x. Pour x à valeurs complexes, variance(x,..) = variance(real(x),..) + variance(imag(x),..) est retournée.

Pour un vecteur, une matrice ou une hypermatrice x, s = variance(x) ou s = variance(x, "*") retourne dans le scalaire s la variance de tous les éléments de x.

s = variance(x,"c") (ou indifféremment s = variance(x, 2)) calcule la variance de chaque ligne. Le vecteur colonne s est retourné, avec s(j) = variance(x(j,:),..).

s = variance(x,"r") (ou indifféremment s = variance(x,1)) calcule la variance de chaque colonne. Le vecteur ligne s est retourné, avec s(i) = variance(x(:,i),..).

La syntaxe variance(x, "*"|"c"|"r", 1) utilisable uniquement en Scilab 5.4.1 doit être remplacée par variance(x,"*"|"c"|"r", %nan). variance(x, "*"|"c"|"r", 1) émettra une alerte jusqu'en Scilab 6.0. En effet, 1 est désormais compris comme m=1. Si 1 est la valeur de l'espérance mà fournir, l'alerte peut être évitée en indiquant1+%eps au lieu de 1.

Exemples

x = [ 0.2113249 0.0002211 0.6653811; 0.7560439 0.4453586 0.6283918 ]
s = variance(x)
s = variance(x, "r")
s = variance(x, "c")

// La loi de distribution de probabilité sous-jacente et son espérance (moyenne) sont connues :
x = grand(100,5,"unf",0,7);      // Distribution uniforme sur [0, 7]
// => espérance = (0+7)/2 = 3.5  et variance = (7-0)^2/12
(7-0)^2/12                  // Variance asymptotique vraie
s = variance(x)             // Estimation non biaisée (division par n-1).
s = variance(x, "*", 3.5)   // Estimation non biaisée (division par n). Toujours >= variance(x)
s = variance(x, "*", %nan)    // Estimation biaisée     (division par n). Toujours <= variance(x)
// A travers les colonnes (le long des lignes) => résultat en colonne :
s = variance(x, "c")
s = variance(x, "c", 3.5)
s = variance(x, "c", %nan)

// Nombres complexes uniformément distribués sur [0,1] + [0,1].i :
x = rand(4, 3) + rand(4, 3)*%i
s = variance(x)
s = variance(x, "*", 0.5 + 0.5*%i)
s = variance(x, "*", %nan)
s = variance(x, "r")
s = variance(x, "c")

// Nombres fournis en hypermatrice :
x = rand(3, 2, 2)    // Distribution uniforme sur [0, 1]
s = variance(x)
s = variance(x, "*", 0.5)
s = variance(x, "*", %nan)
// s = variance(x, "r")  //  Utilisation non admise pour une hypermatrice
// s = variance(x, "c")  //  Utilisation non admise pour une hypermatrice

Voir aussi

  • variancef — variance (et moyenne) d'un vecteur ou d'une matrice réelle ou complexe de nombres pondérés en fréquence
  • mtlb_var — Matlab var emulation function
  • stdev — écart-type des termes d'une matrice

Bibliographie

Wonacott, T.H. & Wonacott, R.J.; Introductory Statistics, fifth edition, J.Wiley & Sons, 1990.

Historique

VersionDescription
5.5.0
  • variance(x, orien, 0|1) supprimée (utilisable uniquement avec Scilab 5.4.1)

  • variance(x, orien, m) introduite : l'espérance mathématique m connue de la distribution de probabilité sous-jacente peut être spécifiée et utilisée

  • variance(x, orien, %nan) introduite : mean(x,..) est utilisée, mais la distance quadratique totale est divisée par la taille n de l'échantillon (au lieu de n-1)

  • [s, mc] = variance(x,..) introduite : la moyenne mc calculée sur l'échantillon x peut être obtenue en second résultat

5.4.1
  • variance(complexes) corrigée. variance(x, "*", 1) introduite. Vectorisation du calcul pour variance(x, "r"|"c"). Révision complète de la page d'aide

Report an issue
<< strange Dispersion variancef >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Oct 24 11:15:59 CEST 2024