Réduction des dimensions (Statistiques spatiales)

Synthèse

Réduit le nombre de dimensions d’un ensemble de variables continues en agrégeant le plus grand volume possible de variance en un nombre inférieur de composantes avec l’analyse en composantes principales (ACP) ou l’analyse linéaire discriminante (ALD).

Les variables sont spécifiées sous forme de champs dans une couche d’entités ou table en entrée, et de nouveaux champs représentant les nouvelles variables sont enregistrés dans la classe d’entités ou table en sortie. Le nombre de nouveaux champs sera moindre que le nombre de variables d’origine tout en maintenant le volume le plus élevé possible de variance par rapport aux variables d’origine. La réduction des dimensions est généralement utilisée pour explorer les relations multivariées entre des variables et pour réduire le coût de calcul des algorithmes d’apprentissage automatique où la mémoire requise et le temps de traitement dépendent du nombre de dimensions dans les données. Utiliser les composantes à la place des données d’origine ou des algorithmes d’apprentissage automatiques permet souvent d’obtenir des résultats comparables (ou même meilleurs) tout en consommant moins de ressources de calcul.

Pour en savoir plus sur l’utilisation de l’outil Réduction des dimensions

Illustration

Illustration de l’outil Réduction des dimensions
Huit variables sont réduites à trois composantes.

Utilisation

  • Au moins deux champs numériques doivent être fournis dans le paramètre Champs d’analyse car les données doivent avoir au moins deux dimensions pour que ces dernières puissent être réduites.

  • Deux options sont disponibles pour le paramètre Méthode de réduction des dimensions :

    • Analyse en Composantes Principales (ACP) : cette méthode construit des composantes de façon séquentielle. Chacune des composantes capture autant de variance totale et de corrélations que possible entre les variables d’origine. Le paramètre Données d’échelle permet de mettre chaque variable d’origine à la même échelle afin que chaque variable ait une importance égale dans les composantes principales. Si les données ne sont pas mises à l’échelle, les variables avec des valeurs supérieures compteront pour la majeure partie de la variance totale et seront surreprésentées dans les premières composantes. Cette méthode est recommandée lorsque vous voulez réaliser une méthode d’analyse ou d’apprentissage automatique dans laquelle les composantes servent à prévoir la valeur d’une variable continue.
    • Analyse linéaire discriminante (ALD) : cette méthode construit des composantes qui optimisent la séparabilité des variables d’analyse et des différents niveaux d’une variable catégorielle fournie dans le paramètre Champ catégoriel. Les composantes maintiennent autant de variance entre les catégories que possible afin que les composantes obtenues soient les plus efficaces en matière de classement de chaque enregistrement dans l’une des catégories. Cette méthode met automatiquement à l’échelle les données et est recommandée lorsque vous voulez réaliser une méthode d’analyse ou d’apprentissage automatique dans laquelle les composantes servent à classer la catégorie d’une variable catégorielle.

  • Les messages de géotraitement affichent le pourcentage et le pourcentage cumulé de la variance maintenue par chaque composante.

  • Le nombre de composantes qui seront créées varie selon que vous spécifiez des valeurs pour les paramètres Pourcentage minimal de variance à maintenir et Nombre minimal de composantes.

    • Si un paramètre est spécifié et pas l’autre, la valeur du paramètre spécifié détermine le nombre de composantes. Le nombre de composantes sera égal au plus petit nombre nécessaire pour satisfaire le minimum spécifié.
    • Si les deux paramètres sont spécifiés, le plus grand des deux nombres obtenus de composantes est utilisé.
    • Si aucun paramètre n’est spécifié, le nombre de composantes est déterminé à l’aide de plusieurs méthodes statistiques et l’outil utilise le nombre maximal de composantes estimé par chaque méthode. Les deux méthodes de réduction des dimensions incluent la méthode des « bâtons brisés » (Broken-Stick) et le test de sphéricité de Bartlett. Pour l’ACP, un test de permutation est également réalisé si la valeur du paramètre Nombre de permutations est supérieure à zéro.

    Des informations sur les résultats de chaque test s’affichent sous forme de messages de géotraitement.

  • Si une table est créée par le paramètre Output Eigenvalues Table (Table de valeurs propres en sortie), un diagramme Scree Plot (Tracé d’éboulis) est créé dans la table en sortie pour visualiser la variance maintenue par chaque composante.

  • Si une table est créée par le paramètre Output Eigenvectors Table (Table de vecteurs propres en sortie), un diagramme à barres est créé dans la table en sortie pour visualiser chacun des vecteurs propres.

  • Vous pouvez ajouter les champs de composant à la table en entrée à l’aide du paramètre Ajouter des champs aux données en entrée. Si vous ajoutez les champs de composant, une table associée n’est pas fournie.

  • Le nombre de composantes ne peut pas être supérieur au nombre d’enregistrements dans l’entrée. En outre, les enregistrements dont des champs d’anayse contiennent des valeurs nulles sont exclus du calcul. Si un grand nombre d’enregistrements contiennent des valeurs nulles, le nombre de composantes spécifiés dans le paramètre Nombre minimal de composantes risquent de ne pas être générés et l’outil échoue. Dans ce cas, supprimez les champs d’analyse qui comportent un grand nombre de valeurs nulles ou spécifiez les valeurs manquantes à l’aide de l’outil Remplir les valeurs manquantes.

  • Pour plus d’informations sur l’analyse en composantes principales (ACP) et l’analyse linéaire discriminante (ALD), consultez la référence suivante :

    • James, G., Witten, D., Hastie, T., Tibshirani, R. (2014). « An Introduction to Statistical Learning: with Applications in R. » Springer Publishing Company, Incorporated. https://doi.org/10.1007/978-1-4614-7138-7

    Pour plus d’informations sur les modes de calcul du nombre de composantes, consultez la référence suivante :

    • Peres-Neto, P., Jackson, D., Somers, K. (2005). « How many principal components? Stopping rules for determining the number of non-trivial axes revisited. » Computational Statistics & Data Analysis. 49.4: 974-997. https://doi.org/10.1016/j.csda.2004.06.015.

Paramètres

ÉtiquetteExplicationType de données
Entités ou table en entrée

La table ou les entités contenant les champs avec la dimension qui sera réduite.

Table View
Table en sortie ou classe d’entités
(Facultatif)

La classe d’entités et table en sortie contenant les composantes générées de la réduction des dimensions.

Table
Champs d’analyse

Les champs représentant les données avec la dimension qui sera réduite.

Field
Méthode de réduction des dimensions
(Facultatif)

Spécifie la méthode allant être utilisée pour réduire les dimensions des champs d’analyse.

  • Analyse en Composantes Principales (ACP)Les champs d’analyse seront divisés en composantes qui, chacune, maintiennent la proportion maximale de la variance totale. Il s’agit de l’option par défaut.
  • Analyse discriminante linéaire à rang réduit (ADL)Les champs d’analyse seront divisés en composantes qui, chacune, maintiennent la séparabilité maximale entre catégories d’une variable catégorielle.
String
Données d’échelle
(Facultatif)

Indique si les valeurs de chaque analyse seront mises à l’échelle pour que la variance soit égale à un. Cette mise à l’échelle garantit que chaque champ d’analyse a une priorité égale dans les composantes. La mise à l’échelle supprime également l’effet des unités linéaires ; par exemple, les mêmes données mesurées en mètres et en pieds donneront des composantes équivalentes. Les valeurs des champs d’analyse subiront une translation afin d’obtenir un zéro moyen pour les deux options.

  • Activé : les valeurs de chaque champ d’analyse seront mises à l’échelle pour que la variance soit égale à un grâce à la division de chaque valeur par l’écart type du champ d’analyse. Il s’agit de l’option par défaut.
  • Désactivé : la variance de chaque champ d’analyse ne sera pas mise à l’échelle.

Boolean
Champ catégoriel
(Facultatif)

Le champ représentant la variable catégorielle pour ALD. Les composantes maintiennent le nombre maximal d’informations requis pour classer chaque enregistrement en entrée dans ces catégories.

Field
Pourcentage minimal de variance à maintenir
(Facultatif)

Pourcentage minimal de variance totale des champs d’analyse qui doit être maintenu dans les composantes. La variance totale varie selon que les champs d’analyse ont été mis à l’échelle avec le paramètre Données d’échelle ou non (scale dans Python).

Long
Nombre minimal de composantes
(Facultatif)

Le nombre minimal de composantes.

Long
Copier tous les champs dans le jeu de données en sortie
(Facultatif)

Indique si tous les champs de la table ou des entités en entrée doivent être copiés et ajoutés à la table ou à la classe d’entités en sortie. Les champs fournis dans le paramètre Analysis Fields (Champs d’analyse) seront copiés dans la sortie quelle que soit la valeur de ce paramètre.

  • Coché : tous les champs de la table ou des entités en entrée doivent être copiés et ajoutés à la table ou à la classe d’entités en sortie.
  • Décoché : seuls les champs d’analyse sont inclus dans la table ou la classe d’entités en sortie. Il s’agit de l’option par défaut.

Boolean
Table des valeurs propres en sortie
(Facultatif)

La table en sortie contenant les valeurs propres de chaque composant.

Table
Table des vecteurs propres en sortie
(Facultatif)

La table en sortie contenant les vecteurs propres de chaque composant.

Table
Nombre de permutations
(Facultatif)

Nombre de permutations qui sera utilisé lors du calcul du nombre optimal de composantes. La valeur par défaut est 0, ce qui signifie qu’aucun test de permutation n’est réalisé.

Long
Ajouter des champs aux données en entrée
(Facultatif)

Indique si les champs de composant sont ajoutés au jeu de données en entrée ou enregistrés dans une table ou une classe d’entités en sortie. Si vous ajoutez les champs à l’entrée, l’environnement de système de coordonnées en sortie est ignoré.

  • Coché : les champs contenant les composantes sont ajoutés aux entités en entrée. Cette option modifie les données en entrée.
  • Décoché : une table ou une classe d’entités en sortie est créée contenant les champs de composant. Il s’agit de l’option par défaut.

Boolean

Sortie obtenue

ÉtiquetteExplicationType de données
Table ou classe d’entités mise à jour

Table ou classe d’entités en entrée mises à jour avec les champs de composant ajoutés.

Table View

arcpy.stats.DimensionReduction(in_table, {output_data}, fields, {method}, {scale}, {categorical_field}, {min_variance}, {min_components}, {append_fields}, {output_eigenvalues_table}, {output_eigenvectors_table}, {number_of_permutations}, {append_to_input})
NomExplicationType de données
in_table

La table ou les entités contenant les champs avec la dimension qui sera réduite.

Table View
output_data
(Facultatif)

La classe d’entités et table en sortie contenant les composantes générées de la réduction des dimensions.

Table
fields
[fields,...]

Les champs représentant les données avec la dimension qui sera réduite.

Field
method
(Facultatif)

Spécifie la méthode allant être utilisée pour réduire les dimensions des champs d’analyse.

  • PCALes champs d’analyse seront divisés en composantes qui, chacune, maintiennent la proportion maximale de la variance totale. Il s’agit de l’option par défaut.
  • LDALes champs d’analyse seront divisés en composantes qui, chacune, maintiennent la séparabilité maximale entre catégories d’une variable catégorielle.
String
scale
(Facultatif)

Indique si les valeurs de chaque analyse seront mises à l’échelle pour que la variance soit égale à un. Cette mise à l’échelle garantit que chaque champ d’analyse a une priorité égale dans les composantes. La mise à l’échelle supprime également l’effet des unités linéaires ; par exemple, les mêmes données mesurées en mètres et en pieds donneront des composantes équivalentes. Les valeurs des champs d’analyse subiront une translation afin d’obtenir un zéro moyen pour les deux options.

  • SCALE_DATALes valeurs de chaque champ d’analyse seront mises à l’échelle pour que la variance soit égale à un grâce à la division de chaque valeur par l’écart type du champ d’analyse. Il s’agit de l’option par défaut.
  • NO_SCALE_DATALa variance de chaque champ d’analyse ne sera pas mise à l’échelle.
Boolean
categorical_field
(Facultatif)

Le champ représentant la variable catégorielle pour ALD. Les composantes maintiennent le nombre maximal d’informations requis pour classer chaque enregistrement en entrée dans ces catégories.

Field
min_variance
(Facultatif)

Pourcentage minimal de variance totale des champs d’analyse qui doit être maintenu dans les composantes. La variance totale varie selon que les champs d’analyse ont été mis à l’échelle avec le paramètre Données d’échelle ou non (scale dans Python).

Long
min_components
(Facultatif)

Le nombre minimal de composantes.

Long
append_fields
(Facultatif)

Indique si tous les champs de la table ou des entités en entrée doivent être copiés et ajoutés à la table ou à la classe d’entités en sortie. Les champs indiqués dans le paramètre fields sont copiés dans la sortie, quelle que soit la valeur de ce paramètre.

  • APPENDTous les champs de la table ou des entités en entrée doivent être copiés et ajoutés à la table ou à la classe d’entités en sortie.
  • NO_APPENDSeuls les champs d’analyse sont inclus dans la table ou la classe d’entités en sortie. Il s’agit de l’option par défaut.
Boolean
output_eigenvalues_table
(Facultatif)

La table en sortie contenant les valeurs propres de chaque composant.

Table
output_eigenvectors_table
(Facultatif)

La table en sortie contenant les vecteurs propres de chaque composant.

Table
number_of_permutations
(Facultatif)

Nombre de permutations qui sera utilisé lors du calcul du nombre optimal de composantes. La valeur par défaut est 0, ce qui signifie qu’aucun test de permutation n’est réalisé. La valeur spécifiée doit être égale à 0, 99, 199, 499 ou 999. Si une autre valeur est fournie, 0 est utilisé et aucun test de permutation n’a lieu.

Long
append_to_input
(Facultatif)

Indique si les champs de composant sont ajoutés au jeu de données en entrée ou enregistrés dans une table ou une classe d’entités en sortie. Si vous ajoutez les champs à l’entrée, l’environnement de système de coordonnées en sortie est ignoré.

  • APPEND_TO_INPUTLes champs contenant les composantes sont ajoutés aux entités en entrée. Cette option modifie les données en entrée.
  • NEW_OUTPUTUne table ou une classe d’entités en sortie est créée contenant les champs de composant. Il s’agit de l’option par défaut.
Boolean

Sortie obtenue

NomExplicationType de données
updated_table

Table ou classe d’entités en entrée mises à jour avec les champs de composant ajoutés.

Table View

Exemple de code

Exemple 1 d’utilisation de l’outil DimensionReduction (fenêtre Python)

Le script Python ci-dessous illustre l’utilisation de la fonction DimensionReduction.


import arcpy
arcpy.stats.DimensionReduction("DemographicData", 
           "DemographicData_DimensionReduction", 
           "age_group_1;age_group2;age_group_3;age_group_4;age_group_5", 
           "PCA", "NO_SCALE_DATA", None, None, 3, 
           "NO_APPEND", "EigenValueTable", None, 99, NEW_OUTPUT)
Exemple 2 d’utilisation de la fonction DimensionReduction (script autonome)

Le script Python autonome suivant illustre l’utilisation de la fonction DimensionReduction pour prédire la population :


# Import system modules 
import arcpy

# Overwrite existing output, by default
arcpy.env.overwriteOutput = True

# Local variables...
arcpy.env.workspace = r"c:\projects\dimensionreduction.gdb"

# Reduce the fields of population by age group using Reduced-Rank LDA method; 
# use "State" as the categorical field; choose the eigenvector output. 
arcpy.stats.DimensionReduction("DemographicData", 
           "DemographicData_DimensionReduction", 
           "age_group_1;age_group2;age_group_3;age_group_4;age_group_5", 
           "LDA", "SCALE_DATA", "State", None, None, 
           "APPEND", None, "EigenVectorTable", 0, NEW_OUTPUT)