Réduction des dimensions (Statistiques spatiales)

Résumé

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 des 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 automatique 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 Analysis Fields (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 Dimension Reduction Method (Méthode de réduction des dimensions) :

    • Principal Component Analysis (PCA) (Analyse des 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 Scale Data (Données d’échelle) permet de placer 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.
    • Reduced-Rank Linear Discriminant Analysis (LDA) (Analyse linéaire discriminante (ALD)) : cette méthode construit des composants qui optimise la séparabilité des variables d’analyse et des différents niveaux d’une variable catégorielle fournie dans le paramètre Categorical Field (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 Minimum Percent Variance to Maintain (Pourcentage minimal de variance à maintenir) et Minimum Number of Components (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 utilisera le plus grand nombre de composantes recommandé par chacune des méthodes. 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 ACP, un test de permutation est également réalisé si la valeur du paramètre Number of Permutations (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.

  • Pour plus d’informations sur l’analyse des 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.

Syntaxe

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})
ParamètreExplicationType 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

La classe d’entités et table en sortie contenant les composants générés 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)

Indique la méthode à utiliser pour réduire les dimensions des champs d’analyse.

  • PCALes champs d’analyse seront divisés en composants qui, chacun, 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 composants qui, chacun, 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 composants. 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 composants équivalents. 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. Il s’agit de l’option par défaut.
  • NO_SCALE_DATALes valeurs de chaque champs d’analyse subiront une translation afin d’obtenir une moyenne de zéro, mais la variance ne sera pas mise à l’échelle.
Boolean
categorical_field
(Facultatif)

Le champ représentant la variable catégorielle pour ALD. Les composants 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 composants. La variance totale varie selon que les champs d’analyse ont été mis à l’échelle avec le paramètre Scale Data (Données d’échelle) ou non.

Long
min_components
(Facultatif)

Le nombre minimal de composantes.

Long
append_fields
(Facultatif)

Indique si tous les champs des entités ou de la table en entrée seront copiés ou ajoutés aux entités ou à la table en sortie. Les champs fournis dans le paramètre fields seront copiés dans la sortie quelle que soit la valeur de ce paramètre.

  • APPENDTous les champs des entités ou de la table en entrée seront ajoutés à la sortie.
  • NO_APPENDSeuls les champs d’analyse seront inclus dans la 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)

Indique le nombre de permutations à utiliser pour déterminer le nombre optimal de composants. La valeur par défaut est 0, ce qui signifie qu’aucun test de permutation n’est réalisé. La valeur fournie doit être égale à 0, 99, 199, 499 ou 999. Si une autre valeur est fournie, 0 est utilisé et aucun test de permutation n’est réalisé.

Long

Exemple de code

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

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

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)
Exemple 2 d’utilisation de l’outil DimensionReduction (script autonome)

Le script Python autonome ci-dessous illustre l’utilisation de l’outil DimensionReduction pour prévoir 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)

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes