Transformar campo (Administración de datos)

Resumen

Transforma valores continuos en uno o varios campos aplicando funciones matemáticas a cada valor y cambiando la forma de la distribución. Entre los métodos de transformación de la herramienta se encuentran logarítmica, raíz cuadrada, Box-Cox, inverso multiplicativo, cuadrado, exponencial y Box-Cox inversa.

Se puede aplicar una transformación para reducir el sesgo en la distribución y hacer que siga una distribución normal (gaussiana).

Ilustración

Ilustración de la herramienta Transformar campo
Los valores originales se transforman para estar más cerca de una distribución normal.

Uso

  • Esta herramienta acepta clases de entidad o vistas de tabla como entrada.

  • Hay siete transformaciones disponibles en el parámetro Método de transformación.

    • Logarítmica: aplica la función logarítmica natural, log(x), al valor original (x) en los campos seleccionados.
      • La transformación logarítmica solo se puede aplicar a valores positivos. Si hay valores negativos o de cero en los campos seleccionados, de forma predeterminada, se agrega un desplazamiento a los datos antes de la transformación, log(x+shift), para que los valores sean positivos. El desplazamiento predeterminado es igual al valor negativo máximo absoluto del campo más un valor positivo pequeño (~10-6). Por ejemplo, si el número negativo máximo del campo seleccionado es -25, todos los valores se desplazan 25,000001 para que todos los valores sean positivos.
    • Raíz cuadrada: calcula la raíz cuadrada de cada valor en los campos seleccionados.
      • La transformación de raíz cuadrada no se puede aplicar a valores negativos. Si hay valores negativos en los campos seleccionados, de forma predeterminada, se agrega un desplazamiento a los datos antes de la transformación para que los valores no sean negativos. El desplazamiento predeterminado es igual al valor negativo máximo absoluto del campo para que los valores no sean negativos.
    • Box-Cox: aplica la siguiente función de potencia para distribuir normalmente los datos en los campos seleccionados:

      Transformación de Box-Cox
      donde x' es el valor transformado, x es el valor original, λ1 es el parámetro de potencia (exponente) y λ2 es el parámetro de desplazamiento.

      • La transformación de Box-Cox solo se puede aplicar a valores positivos. Si hay valores negativos o de cero en los campos seleccionados, de forma predeterminada, se agrega un desplazamiento a los datos antes de la transformación para que los valores sean positivos. El valor predeterminado es igual al valor negativo máximo absoluto del campo para que los valores no sean negativos más un valor pequeño infinitesimal (~10-6) para que sean distintos de cero. El parámetro Potencia se puede utilizar para especificar el valor de la potencia, que puede calcular valores de entre -5 y 5. Si no se proporciona ningún valor, se utilizará la mejor aproximación de una curva de distribución normal y se mostrará en los mensajes de geoprocesamiento.
    • Inverso multiplicativo: calcula el valor recíproco (1/x) de cada valor (x) en los campos seleccionados.
      • La transformación de inverso multiplicativo no se puede aplicar a valores de cero. Si hay valores de cero en los campos seleccionados, se reportan como nulos en el campo transformado. No se aplica ningún desplazamiento para este método.
    • Exponencial: aplica la función exponencial, (ex), al valor original (x) en los campos seleccionados. La transformación exponencial también es la inversa de una transformación logarítmica, lo que significa que al aplicar la transformación exponencial en un campo con transformación logarítmica se devolverán los valores de datos originales.
      • De forma predeterminada, no se aplica ningún desplazamiento al campo seleccionado. Para volver a los valores originales de un campo al que se ha aplicado una transformación logarítmica, especifique el mismo valor de desplazamiento que se utilizó para crear el campo con transformación logarítmica. El desplazamiento se resta después de aplicar la transformación exponencial: ex - shift.
    • Cuadrado: aplica la función cuadrado a cada valor de los campos seleccionados. La transformación de cuadrado también es la inversa de la transformación de raíz cuadrada, lo que significa que al aplicar la transformación de cuadrado en un campo con transformación de raíz cuadrada se devolverán los valores de datos originales.
      • De forma predeterminada, no se aplica ningún desplazamiento a los campos seleccionados. Para volver a los valores originales de un campo al que se ha aplicado una transformación de raíz cuadrada, especifique el mismo valor de desplazamiento que se utilizó para crear el campo con raíz cuadrada. El desplazamiento se resta después de aplicar la transformación de cuadrado:. x2 - shift.
    • Box-Cox inversa: aplica la inversa de la transformación de Box-Cox, lo que significa que al aplicar la transformación de Box-Cox inversa en un campo con transformación de Box-Cox se devolverán los valores de datos originales. La función de potencia de Box-Cox inversa se calcula de la siguiente manera:

      Transformación de Box-Cox inversa
      donde x' es el valor transformado, x es el valor original, λ1 es el parámetro de potencia (exponente) y λ2 es el parámetro de desplazamiento.

      • De forma predeterminada, no se aplica ningún desplazamiento ni potencia a los campos seleccionados. Para volver a los valores originales de un campo al que se ha aplicado una transformación de Box-Cox, especifique los mismos valores de desplazamiento y potencia que se utilizaron para crear el campo con Box-Cox.

  • Si no desea que se aplique un desplazamiento predeterminado a los métodos logarítmico, raíz cuadrada y Box-Cox, puede proporcionar un valor de 0 en el parámetro Desplazamiento y no se aplicará ningún desplazamiento.

  • Si se utilizan varios campos en la ejecución de la herramienta, el método de transformación elegido se aplica a todos los campos. Si se proporciona un valor de desplazamiento o potencia, se aplican los mismos valores a todos los campos seleccionados. Si no se proporcionan valores para los parámetros Desplazamiento y Potencia, los valores predeterminados se calculan de forma independiente para cada campo seleccionado según el método de transformación elegido.

  • La herramienta modifica los datos de entrada e incorpora los campos transformados recién creados a la tabla o clase de entidad de entrada.

  • En el parámetro Campo a transformar, se pueden especificar los nombres de campo de entrada y salida. Si el nombre del campo de salida ya existe en los datos, la herramienta sobrescribe el campo.

  • Para cada campo transformado, se proporcionan estadísticas de resumen para los campos de origen y transformados en los resultados de los mensajes de geoprocesamiento. Entre estas estadísticas se incluyen máximo, mínimo, suma, valor medio, desviación estándar, mediana, sesgo y curtosis.

  • Los valores de los parámetros Potencia y Desplazamiento estimados por la herramienta también se muestran en los mensajes de geoprocesamiento. Estos valores se pueden utilizar para obtener los valores de datos originales utilizando la inversa del método de transformación.

  • La herramienta crea un gráfico de histograma para cada uno de los campos transformados recién creados para visualizar sus distribuciones.

Parámetros

EtiquetaExplicaciónTipo de datos
Tabla de entrada

La tabla o clase de entidad de entrada que contiene los campos que se van a transformar. Los campos recién transformados se agregan a la tabla de entrada.

Table View; Raster Layer; Mosaic Layer
Campo a transformar

Los campos que contienen los valores que se van a transformar. Para cada campo, se puede especificar un nombre de campo de salida. Si no se proporciona ningún nombre de campo de salida, la herramienta crea un nombre de campo de salida utilizando el nombre del campo y el método de transformación.

Value Table
Método de transformación
(Opcional)

Especifica el método que se utiliza para transformar los valores contenidos en los campos especificados.

  • Inverso multiplicativoEl método de inverso multiplicativo (1/x) se aplica al valor original (x) en los campos seleccionados.
  • Raíz cuadradaEl método de raíz cuadrada se aplica al valor original en los campos seleccionados.
  • RegistroLa función logarítmica natural, log(x), se aplica al valor original (x) en los campos seleccionados.
  • Box-CoxLa función de potencia de Box-Cox se aplica para distribuir normalmente los valores originales de los campos seleccionados. Esta es la opción predeterminada.
  • Box-Cox inversaLa inversa de la transformación de Box-Cox se aplica a los valores originales en los campos seleccionados.
  • Cuadrado (raíz cuadrada inversa)El método de cuadrado se aplica a los valores originales en los campos seleccionados. Esta transformación es la inversa de raíz cuadrada.
  • Exponencial (logarítmica inversa)La función exponencial, exp(x), se aplica al valor original (x) en los campos seleccionados. Esta transformación es la inversa de logarítmica.
String
Potencia
(Opcional)

El parámetro de potencia (λ1) de la transformación de Box-Cox. Si no se proporciona ningún valor, se determina un valor óptimo utilizando la estimación de máxima probabilidad (MLE).

Double
Valor constante
(Opcional)

El valor por el que se desplazan todos los datos (agregación de un valor constante). No se aplica ningún valor de desplazamiento si se especifica 0.

En las transformaciones logarítmica, de Box-Cox y de raíz cuadrada, se agrega un valor de desplazamiento predeterminado antes de la transformación si hay valores negativos o de cero.

En las transformaciones exponencial (logarítmica inversa), de Box-Cox inversa y de cuadrado (raíz cuadrada inversa), no se aplica ningún desplazamiento de forma predeterminada. Si se proporciona un valor de desplazamiento, el valor se resta después de aplicar la transformación. De esta forma, puede usar el mismo valor de desplazamiento para las transformaciones y sus inversas asociadas.

Double

Salida derivada

EtiquetaExplicaciónTipo de datos
Tabla de entrada actualizada

La tabla actualizada que contiene los campos transformados.

Vista de tabla

arcpy.management.TransformField(in_table, fields, {method}, {power}, {shift})
NombreExplicaciónTipo de datos
in_table

La tabla o clase de entidad de entrada que contiene los campos que se van a transformar. Los campos recién transformados se agregan a la tabla de entrada.

Table View; Raster Layer; Mosaic Layer
fields
[[input_field, output_field_name],...]

Los campos que contienen los valores que se van a transformar. Para cada campo, se puede especificar un nombre de campo de salida. Si no se proporciona ningún nombre de campo de salida, la herramienta crea un nombre de campo de salida utilizando el nombre del campo y el método de transformación.

Value Table
method
(Opcional)

Especifica el método que se utiliza para transformar los valores contenidos en los campos especificados.

  • INVXEl método de inverso multiplicativo (1/x) se aplica al valor original (x) en los campos seleccionados.
  • SQRTEl método de raíz cuadrada se aplica al valor original en los campos seleccionados.
  • LOGLa función logarítmica natural, log(x), se aplica al valor original (x) en los campos seleccionados.
  • BOX-COXLa función de potencia de Box-Cox se aplica para distribuir normalmente los valores originales de los campos seleccionados. Esta es la opción predeterminada.
  • INV_BOX-COXLa inversa de la transformación de Box-Cox se aplica a los valores originales en los campos seleccionados.
  • INV_SQRTEl método de cuadrado se aplica a los valores originales en los campos seleccionados. Esta transformación es la inversa de raíz cuadrada.
  • INV_LOGLa función exponencial, exp(x), se aplica al valor original (x) en los campos seleccionados. Esta transformación es la inversa de logarítmica.
String
power
(Opcional)

El parámetro de potencia (λ1) de la transformación de Box-Cox. Si no se proporciona ningún valor, se determina un valor óptimo utilizando la estimación de máxima probabilidad (MLE).

Double
shift
(Opcional)

El valor por el que se desplazan todos los datos (agregación de un valor constante). No se aplica ningún valor de desplazamiento si se especifica 0.

En las transformaciones logarítmica, de Box-Cox y de raíz cuadrada, se agrega un valor de desplazamiento predeterminado antes de la transformación si hay valores negativos o de cero.

En las transformaciones exponencial (logarítmica inversa), de Box-Cox inversa y de cuadrado (raíz cuadrada inversa), no se aplica ningún desplazamiento de forma predeterminada. Si se proporciona un valor de desplazamiento, el valor se resta después de aplicar la transformación. De esta forma, puede usar el mismo valor de desplazamiento para las transformaciones y sus inversas asociadas.

Double

Salida derivada

NombreExplicaciónTipo de datos
updated_table

La tabla actualizada que contiene los campos transformados.

Vista de tabla

Muestra de código

Ejemplo 1 de TransformField (ventana de Python)

El siguiente script de la ventana de Python muestra cómo utilizar la herramienta TransformField.


import arcpy
arcpy.management.TransformField("County_Data", "Income", "LOG")
Ejemplo 2 de TransformField (script independiente)

El siguiente script de Phython independiente muestra cómo utilizar la herramienta TransformField.


# Import system modules. 
import arcpy 
 
try: 
    # Set the workspace and input features. 
    arcpy.env.workspace = r"C:\\Transform\\MyData.gdb" 
    inputFeatures = "County_Data" 
 
    # Set the input fields that will be standardized 
    fields = "population_total;unemployment_rate;income" 
 
    # Set the standardization method. 
    method = "BOX-COX" 
 
    # Run the Transform Field tool 
    arcpy.management.TransformField(inputFeatures, fields, method) 
 
except arcpy.ExecuteError: 
    # If an error occurred when running the tool, print the error message. 
    print(arcpy.GetMessages())

Entornos