Reducción de dimensión (Estadística espacial)

Resumen

Reduce el número de dimensiones de un conjunto de variables continuas agregando la mayor cantidad posible de varianza en menos componentes utilizando un Análisis de componentes principales (PCA) o un Análisis discriminante lineal (LDA) de rango reducido.

Las variables se especifican como campos en una tabla o capa de entidades de entrada y los nuevos campos que representan las nuevas variables se guardan en la tabla o clase de entidad de salida. El número de campos nuevos será menor que el número de variables originales y mantendrá al mismo tiempo la cantidad de varianza más alta posible de todas las variables originales. La herramienta Reducción de dimensión se utiliza normalmente para explorar relaciones multivariantes entre variables y para reducir el coste de cálculo de algoritmos de aprendizaje automático en los que la memoria requerida y el tiempo de procesamiento dependen del número de dimensiones de los datos. El uso de los componentes en lugar de los datos originales en análisis o algoritmos de aprendizaje automático puede proporcionar a menudo resultados comparables (o mejores) al tiempo que se consumen menos recursos de cálculo.

Más información sobre cómo funciona Reducción de dimensión

Ilustración

Ilustración de la herramienta Reducción de dimensión
Ocho variables se reducen a tres componentes.

Uso

  • Se deben proporcionar al menos dos campos numéricos en el parámetro Campos de análisis porque los datos deben tener al menos dos dimensiones para reducir sus dimensiones.

  • El parámetro Método de reducción de dimensión presenta dos opciones:

    • Análisis de componentes principales (PCA): este método crea secuencialmente componentes que capturan la mayor parte posible de la varianza total y las correlaciones entre las variables originales. El parámetro Escalar datos se puede utilizar para escalar cada variable original, de modo que cada variable tenga la misma importancia en los componentes principales. Si los datos no se escalan, las variables con valores más grandes representarán la mayor parte de la varianza total y estarán sobrerrepresentadas en los primeros componentes. Este método se recomienda cuando desea realizar un análisis o un método de aprendizaje automático en el que los componentes se utilizan para predecir el valor de una variable continua.
    • Análisis discriminante lineal (LDA) de rango reducido: este método crea componentes que maximizan la separabilidad de las variables de análisis y los distintos niveles de una variable de categorías proporcionada en el parámetro Campo de categorías. Los componentes mantendrán la máxima varianza entre categorías posible para que los componentes resultantes sean más eficaces a la hora de clasificar cada registro en una de las categorías. Este método escala automáticamente los datos y se recomienda cuando desea realizar un análisis o un método de aprendizaje automático en el que los componentes se utilizan para clasificar la categoría de una variable de categorías.

  • Los mensajes de geoprocesamiento muestran el porcentaje y el porcentaje acumulado de varianza que mantiene cada componente.

  • El número de componentes que se crearán depende de si especifica valores para los parámetros Porcentaje mínimo de varianza a mantener y Número mínimo de componentes.

    • Si se especifica un parámetro y el otro no, el valor del parámetro especificado determina el número de componentes. El número de componentes será igual al número más bajo necesario para satisfacer el mínimo especificado.
    • Si se especifican ambos parámetros, se utiliza el mayor de los dos números de componentes resultantes.
    • Si no se especifica ninguno de los parámetros, el número de componentes se determina utilizando varios métodos estadísticos y la herramienta utilizará el mayor número de componentes estimado por cada uno de los métodos. En ambos métodos de reducción de dimensión, los métodos incluyen el método Broken-Stick y la prueba de esfericidad de Bartlett. En PCA, también se realiza una prueba de permutación si el valor del parámetro Número de permutaciones es mayor que cero.

    La información sobre los resultados de cada prueba se muestra como mensajes de geoprocesamiento.

  • Si el parámetro Tabla de eigenvalores de salida crea una tabla, se crea un gráfico de sedimentación en la tabla de salida para visualizar la varianza que mantiene cada componente.

  • Si el parámetro Tabla de eigenvectores de salida crea una tabla, se crea un gráfico de barras en la tabla de salida para visualizar cada uno de los eigenvectores.

  • Puede incorporar los campos de componentes a la tabla de entrada mediante el parámetro Incorporar campos a datos de entrada. Si incorpora los campos de componentes, no se proporciona una tabla relacionada.

  • El número de componentes no puede ser mayor que el número de registros de la entrada. Además, los registros que tengan valores nulos en cualquier de los campos de análisis se excluirán del cálculo. Si muchos registros tienen valores nulos, el número de componentes especificado en el parámetro Número mínimo de componentes podría no crearse y la herramienta fallaría. En ese caso, elimine los campos de análisis que tengan muchos valores nulos o rellene los valores que faltan mediante el uso de la herramienta Rellenar valores que faltan.

  • Para obtener más información sobre PCA y LDA de rango reducido, consulte la siguiente referencia:

    • 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

    Para obtener más información sobre los métodos para determinar el número de componentes, consulte la siguiente referencia:

    • 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.

Parámetros

EtiquetaExplicaciónTipo de datos
Tabla o entidades de entrada

La tabla o entidades que contienen los campos con la dimensión que se reducirá.

Table View
Tabla o clase de entidad de salida
(Opcional)

La tabla o clase de entidad de salida que contiene los componentes resultantes de la reducción de dimensión.

Table
Campos de análisis

Los campos que representan los datos con la dimensión que se reducirá.

Field
Método de reducción de dimensión
(Opcional)

Especifica el método que se utilizará para reducir las dimensiones de los campos de análisis.

  • Análisis de componentes principales (PCA)Los campos de análisis se dividirán en componentes que mantienen la proporción máxima de la varianza total. Esta es la opción predeterminada.
  • Análisis discriminante lineal (LDA) de rango reducidoLos campos de análisis se dividirán en componentes que mantienen la máxima separabilidad entre categorías de una variable de categorías.
String
Escalar datos
(Opcional)

Especifica si los valores de cada análisis se escalarán para tener una varianza igual a uno. Este escalado garantiza que cada campo de análisis tenga la misma prioridad en los componentes. El escalado también elimina el efecto de las unidades lineales, donde, por ejemplo, los mismos datos medidos en metros y pies generarán componentes equivalentes. Los valores de los campos de análisis se desplazarán para que tengan un valor medio de cero para ambas opciones.

  • Activado: los valores de cada campo de análisis se escalarán para tener una varianza igual a uno dividiendo cada valor por la desviación estándar del campo de análisis. Esta es la opción predeterminada.
  • Desactivado: la varianza de cada campo de análisis no se escalará.

Boolean
Campo de categorías
(Opcional)

El campo que representa la variable de categorías para LDA. Los componentes mantendrán la máxima cantidad de información necesaria para clasificar cada registro de entrada en estas categorías.

Field
Porcentaje mínimo de varianza a mantener
(Opcional)

El porcentaje mínimo de varianza total de los campos de análisis que se debe mantener en los componentes. La varianza total depende de si los campos de análisis se escalaron con el parámetro Escalar datos (scale en Python).

Long
Número mínimo de componentes
(Opcional)

El número mínimo de componentes.

Long
Copiar todos los campos en el dataset de salida
(Opcional)

Especifica si todos los campos de la tabla o entidades de entrada se copiarán e incorporarán a la tabla o clase de entidad de salida. Los campos proporcionados en el parámetro Campos de análisis se copiarán en la salida independientemente del valor de este parámetro.

  • Activado: todos los campos de la tabla o entidades de entrada se copiarán e incorporarán a la tabla o clase de entidad de salida.
  • Desactivado: solamente se incluirán en la tabla o clase de entidad de salida los campos de análisis. Esta es la opción predeterminada.

Boolean
Tabla de eigenvalores de salida
(Opcional)

La tabla de salida que contiene los eigenvalores de cada componente.

Table
Tabla de eigenvectores de salida
(Opcional)

La tabla de salida que contiene los eigenvectores de cada componente.

Table
Número de permutaciones
(Opcional)

El número de permutaciones que se utilizarán para determinar el número óptimo de componentes. El valor predeterminado es 0, lo que indica que no se realizará ninguna prueba de permutación.

Long
Incorporar campos a datos de entrada
(Opcional)

Especifica si los campos del componente se incorporarán al dataset de entrada o se guardarán en una tabla o clase de entidad de salida. Si incorpora los campos a la entrada, se ignorará el entorno del sistema de coordenadas de salida.

  • Activado: los campos que contienen los componentes se incorporarán a las entidades de entrada. Esta opción modifica los datos de entrada.
  • Desactivado: se creará una tabla o clase de entidad de salida que contenga los campos de componentes. Esta es la opción predeterminada.

Boolean

Salida derivada

EtiquetaExplicaciónTipo de datos
Tabla o clase de entidad actualizada

La clase de entidad o tabla de entrada actualizada con los campos de componentes incorporados.

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})
NombreExplicaciónTipo de datos
in_table

La tabla o entidades que contienen los campos con la dimensión que se reducirá.

Table View
output_data
(Opcional)

La tabla o clase de entidad de salida que contiene los componentes resultantes de la reducción de dimensión.

Table
fields
[fields,...]

Los campos que representan los datos con la dimensión que se reducirá.

Field
method
(Opcional)

Especifica el método que se utilizará para reducir las dimensiones de los campos de análisis.

  • PCALos campos de análisis se dividirán en componentes que mantienen la proporción máxima de la varianza total. Esta es la opción predeterminada.
  • LDALos campos de análisis se dividirán en componentes que mantienen la máxima separabilidad entre categorías de una variable de categorías.
String
scale
(Opcional)

Especifica si los valores de cada análisis se escalarán para tener una varianza igual a uno. Este escalado garantiza que cada campo de análisis tenga la misma prioridad en los componentes. El escalado también elimina el efecto de las unidades lineales, donde, por ejemplo, los mismos datos medidos en metros y pies generarán componentes equivalentes. Los valores de los campos de análisis se desplazarán para que tengan un valor medio de cero para ambas opciones.

  • SCALE_DATALos valores de cada campo de análisis se escalarán para tener una varianza de uno dividiendo cada valor por la desviación estándar del campo de análisis. Esta es la opción predeterminada.
  • NO_SCALE_DATALa varianza de cada campo de análisis no se escalará.
Boolean
categorical_field
(Opcional)

El campo que representa la variable de categorías para LDA. Los componentes mantendrán la máxima cantidad de información necesaria para clasificar cada registro de entrada en estas categorías.

Field
min_variance
(Opcional)

El porcentaje mínimo de varianza total de los campos de análisis que se debe mantener en los componentes. La varianza total depende de si los campos de análisis se escalaron con el parámetro Escalar datos (scale en Python).

Long
min_components
(Opcional)

El número mínimo de componentes.

Long
append_fields
(Opcional)

Especifica si todos los campos de la tabla o entidades de entrada se copiarán e incorporarán a la tabla o clase de entidad de salida. Los campos proporcionados en el parámetro fields se copiarán en la salida independientemente del valor de este parámetro.

  • APPENDTodos los campos de la tabla o entidades de entrada se copiarán e incorporarán a la tabla o clase de entidad de salida.
  • NO_APPENDSolamente se incluirán en la tabla o clase de entidad de salida los campos de análisis. Esta es la opción predeterminada.
Boolean
output_eigenvalues_table
(Opcional)

La tabla de salida que contiene los eigenvalores de cada componente.

Table
output_eigenvectors_table
(Opcional)

La tabla de salida que contiene los eigenvectores de cada componente.

Table
number_of_permutations
(Opcional)

El número de permutaciones que se utilizarán para determinar el número óptimo de componentes. El valor predeterminado es 0, lo que indica que no se realizará ninguna prueba de permutación. El valor proporcionado debe ser igual a 0, 99, 199, 499 o 999. Si se proporciona cualquier otro valor, se utilizará 0 y no se realizará ninguna prueba de permutación.

Long
append_to_input
(Opcional)

Especifica si los campos del componente se incorporarán al dataset de entrada o se guardarán en una tabla o clase de entidad de salida. Si incorpora los campos a la entrada, se ignorará el entorno del sistema de coordenadas de salida.

  • APPEND_TO_INPUTLos campos que contienen los componentes se incorporarán a las entidades de entrada. Esta opción modifica los datos de entrada.
  • NEW_OUTPUTSe creará una tabla o clase de entidad de salida que contenga los campos de componentes. Esta es la opción predeterminada.
Boolean

Salida derivada

NombreExplicaciónTipo de datos
updated_table

La clase de entidad o tabla de entrada actualizada con los campos de componentes incorporados.

Table View

Muestra de código

Ejemplo 1 de DimensionReduction (ventana de Python)

En el siguiente script de Python se muestra cómo utilizar la función 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)
Ejemplo 2 de DimensionReduction (script independiente)

En el siguiente script de Python independiente se muestra cómo utilizar la función DimensionReduction para predecir la ubicación:


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