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
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:
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:
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.
- Logarítmica: aplica la función logarítmica natural, log(x), al valor original (x) en los campos seleccionados.
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.
Sintaxis
arcpy.management.TransformField(in_table, fields, {method}, {power}, {shift})
Parámetro | Explicación | Tipo 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.
| 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
Nombre | Explicación | Tipo de datos |
updated_table | La tabla actualizada que contiene los campos transformados. | Vista de tabla |
Muestra de código
El siguiente script de la ventana de Python muestra cómo utilizar la herramienta TransformField.
import arcpy
arcpy.management.TransformField("County_Data", "Income", "LOG")
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
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí