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 - 日本語 - Русский
Aide de Scilab >> Statistiques > Descriptive Statistics > histc

histc

calcule un histogramme

Syntaxe

h = histc(n, data)
h = histc(x, data)
h = histc(.., normalization)

Paramètres

n

entier positif (nombre de classes)

x

vecteur croissant définissant les classes (x doit avoir au moins 2 éléments)

data

vecteur (données à analyser)

h

  • Si normalization est %T: densités de probabilité sur les intervalles définis par n or x, telles que l'aire de chaque intervalle est proportionnelle à sa population.
  • Si normalization est %F: nombres d'éléments peuplant les intervalles.

normalization

booléen simple (%T par défaut), déterminant le type de résultat (voir h).

Description

Cette fonction calcule un histogramme du vecteur data d'après les classes x. Quand le nombre de classes n est fourni au lieu de x, les classes sont choisies également espacées et x(1) = min(data) < x(2) = x(1) + dx < ... < x(n+1) = max(data) avec dx = (x(n+1)-x(1))/n.

Les classes sont définies par C1 = [x(1), x(2)] et Ci = ( x(i), x(i+1)] pour i >= 2. Si l'on note Nmax le nombre total de data (Nmax = length(data)) et Ni le nombre d'éléments de data tombant dans Ci, la valeur de l'histogramme pour x dans Ci est égal à Ni/(Nmax (x(i+1)-x(i))) quand "normalized" est séléctionné et sinon, simplement égal à Ni. Quand la normalisation a lieu, l'histogramme vérifie:

\int_{x(1)}^{x(n+1)}h(x)\,\mathrm{d}x = 1

quand x(1)<=min(data) et max(data) <= x(n+1)

Exemples

  • Exemple #1: variations sur l'histogramme d'un échantillon gaussien N(0,1)
    // L'échantillon aléatoire gaussien
    d = rand(1, 10000, 'normal');
    
    h = histc(20, d, normalization=%f);
    sum(h)   // = 10000
    // On utilise histplot pour avoir une représentation graphique
    clf(); histplot(20, d, normalization=%f);
    
    // Histogramme d'aire normalisée (densité de probabilité)
    h = histc(20, d);
    dx = (max(d)-min(d))/20;  sum(h)*dx   // = 1
    clf(); histplot(20, d);
  • Exemple #2: histogramme d'un échantillon de loi binomiale B(6,0.5)
    d = grand(1000,1,"bin", 6, 0.5);
    c = linspace(-0.5,6.5,8);
    clf()
    
    subplot(2,1,1)
    h = histc(c, d);
    histplot(c, d, style=2);
    xtitle("Histogramme d''aire normalisée")
    
    subplot(2,1,2)
    h = histc(c, d, normalization=%f);
    histplot(c, d, normalization=%f, style=5);
    xtitle("Histogramme brut")
  • Exemple #3 : histogramme d'un échantillon de loi exponentielle E(lambda)
    lambda = 2;
    X = grand(100000,1,"exp", 1/lambda);
    Xmax = max(X);
    h = histc(40, X);
    
    clf()
    histplot(40, X, style=2);
    x = linspace(0, max(Xmax), 100)';
    plot2d(x, lambda*exp(-lambda*x), strf="000", style=5)
    legend(["Histogramme d''un échantillon de distribution exponentielle" "Fonction densité exacte"]);
  • Exemple #4 : polygône des fréquences et histogramme d'un échantillon gaussien
    n = 10;
    data = rand(1, 1000, "normal");
    h = histc(n, data);
    
    clf(); histplot(n, data, style=12, polygon=%t);
    legend(["Histogramme d''aire normalisée" "Polygone des fréquences"], "lower_caption");

Voir aussi

  • histplot — dessine un histogramme
  • hist3d — représentation 3D d'un histogramme
  • plot2d — 2D plot
  • dsearch — répartit, localise et compte les éléments d'une matrice en catégories données

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 Feb 14 14:59:57 CET 2019