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

    Precaución:

    Esta herramienta modifica los datos de entrada. Consulte Herramientas que modifican o actualizan los datos de entrada para obtener más información y estrategias para evitar cambios de datos no deseados.

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

  • En el parámetro Método de transformación se encuentran disponibles las siguientes transformaciones:

    • Registro: la función logarítmica natural, log(x), se aplica al valor original (x) de 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: se aplica la raíz cuadrada de cada valor de 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: se aplica la siguiente función de potencia para distribuir normalmente los datos de los campos seleccionados:

      Transformación 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. 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: se aplica el valor recíproco (1/x) de cada valor(x) de 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: la función exponencial (ex) se aplica al valor original (x) de 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 obtener 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: se 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 obtener 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: se aplica la inversa de la transformación Box-Cox. Esto 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 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.

      • Se debe proporcionar un valor de potencia. Para obtener 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, proporcione un valor de 0 en el parámetro Desplazamiento y no se aplicará ningún desplazamiento.

  • Si se utilizan varios campos en 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 especificado.

  • 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, el campo se sobrescribe.

  • 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 utilizará para transformar los valores contenidos en los campos especificados.

  • Inverso multiplicativoEl método de inverso multiplicativo (1/x) se aplicará al valor original (x) de los campos seleccionados.
  • Raíz cuadradaEl método de raíz cuadrada se aplicará al valor original de los campos seleccionados.
  • LogarítmicaLa función logarítmica natural, log(x), se aplicará al valor original (x) de los campos seleccionados.
  • Box-CoxLa función de potencia de Box-Cox se aplicará 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 aplicará a los valores originales de los campos seleccionados.
  • Cuadrado (raíz cuadrada inversa)El método de cuadrado se aplicará a los valores originales de los campos seleccionados. Esta transformación es la inversa de raíz cuadrada.
  • Exponencial (logarítmica inversa)La función exponencial, exp(x), se aplicará al valor original (x) de los campos seleccionados. Esta transformación es la inversa de logarítmica.
String
Potencia
(Opcional)

Parámetro de potencia (λ1) de la transformación de Box-Cox y las transformaciones Box-Cox inversa. Si no se proporciona ningún valor en la transformación de Box-Cox, se determinará un valor óptimo utilizando la estimación de máxima probabilidad (MLE). Se debe proporcionar un valor para la transformación Box-Cox inversa.

Double
Valor constante
(Opcional)

Valor que se utilizará para desplazar los datos (se agrega 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 agregará 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.

Table View

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 utilizará para transformar los valores contenidos en los campos especificados.

  • INVXEl método de inverso multiplicativo (1/x) se aplicará al valor original (x) de los campos seleccionados.
  • SQRTEl método de raíz cuadrada se aplicará al valor original de los campos seleccionados.
  • LOGLa función logarítmica natural, log(x), se aplicará al valor original (x) de los campos seleccionados.
  • BOX-COXLa función de potencia de Box-Cox se aplicará 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 aplicará a los valores originales de los campos seleccionados.
  • INV_SQRTEl método de cuadrado se aplicará a los valores originales de los campos seleccionados. Esta transformación es la inversa de raíz cuadrada.
  • INV_LOGLa función exponencial, exp(x), se aplicará al valor original (x) de los campos seleccionados. Esta transformación es la inversa de logarítmica.
String
power
(Opcional)

Parámetro de potencia (λ1) de la transformación de Box-Cox y las transformaciones Box-Cox inversa. Si no se proporciona ningún valor en la transformación de Box-Cox, se determinará un valor óptimo utilizando la estimación de máxima probabilidad (MLE). Se debe proporcionar un valor para la transformación Box-Cox inversa.

Double
shift
(Opcional)

Valor que se utilizará para desplazar los datos (se agrega 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 agregará 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.

Table View

Muestra de código

Ejemplo 1 de TransformField (ventana de Python)

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

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

El siguiente script independiente de Python muestra cómo utilizar la función 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

Temas relacionados