John Tukey defendido su "tres método de punto" para la búsqueda de re-expresiones de variables para alinear las relaciones.
Voy a ilustrar con un ejercicio de su libro, el Análisis Exploratorio de Datos. Estas son las de vapor de mercurio de presión de datos de un experimento en el que se varió la temperatura y la presión de vapor se mide.
pressure <- c(0.0004, 0.0013, 0.006, 0.03, 0.09, 0.28, 0.8, 1.85, 4.4,
9.2, 18.3, 33.7, 59, 98, 156, 246, 371, 548, 790) # mm Hg
temperature <- seq(0, 360, 20) # Degrees C
La relación es fuertemente no lineal: ver el panel de la izquierda en la ilustración.
Debido a que este es un exploratoria ejercicio, esperamos que sea interactivo. El analista se le pide a comenzar con la identificación de tres "típicos" de los puntos de la trama: uno cerca de cada extremo y uno en el medio. Yo lo he hecho aquí y marcado en rojo. (La primera vez que hice este ejercicio hace mucho tiempo, he utilizado un conjunto diferente de puntos, pero llegado a los mismos resultados.)
En los tres métodos de punto, una de registros-por fuerza bruta o de otro tipo, para un Box-Cox de transformación que, cuando se aplica a una de las coordenadas-o y o x--(a) lugar de la típica puntos aproximadamente en una línea y (b) utiliza un "agradable" de energía, que normalmente se elige a partir de una "escalera" de los poderes que pueden ser interpretables por el analista.
Por razones que se hará evidente más adelante, he ampliado el Box-Cox de la familia, al permitir que un "offset" de modo que las transformaciones en la forma
$$x \a \frac{(x + \alpha)^\lambda - 1}{\lambda}.$$
He aquí una rápida y sucia R
de ejecución. Se busca en primer lugar un óptimo $(\lambda\alpha)$ solución, entonces rondas $\lambda$ a el valor más próximo en la escalera y, sujeto a la restricción, optimiza $\alpha$ (dentro de límites razonables). Es increíblemente rápido porque todos los cálculos se basan sólo en esos tres puntos típicos de la del conjunto de datos original. (Se puede hacer con lápiz y papel, incluso, que es exactamente lo Tukey).
box.cox <- function(x, parms=c(1,0)) {
lambda <- parms[1]
offset <- parms[2]
if (lambda==0) log(x+offset) else ((x+offset)^lambda - 1)/lambda
}
threepoint <- function(x, y, ladder=c(1, 1/2, 1/3, 0, -1/2, -1)) {
# x and y are length-three samples from a dataset.
dx <- diff(x)
f <- function(parms) (diff(diff(box.cox(y, parms)) / dx))^2
fit <- nlm(f, c(1,0))
parms <- fit$estimate #$
lambda <- ladder[which.min(abs(parms[1] - ladder))]
if (lambda==0) offset = 0 else {
do <- diff(range(y))
offset <- optimize(function(x) f(c(lambda, x)),
c(max(-min(x), parms[2]-do), parms[2]+do))$minimum
}
c(lambda, offset)
}
Cuando los tres puntos de método se aplica a la presión (y) los valores en la de vapor de mercurio conjunto de datos, se obtiene el panel central de las parcelas.
data <- cbind(temperature, pressure)
n <- dim(data)[1]
i3 <- c(2, floor((n+1)/2), n-1)
parms <- threepoint(temperature[i3], pressure[i3])
y <- box.cox(pressure, parms)
En este caso, parms
resulta igual a $(0,0)$: el método que se elige para iniciar la transformación de la presión.
Hemos llegado a un punto análogo al contexto de la pregunta: por la razón que sea (por lo general para estabilizar la varianza residual), hemos re-expresado el dependiente de la variable, pero nos encontramos con que la relación con una variable independiente es no lineal. Así que ahora nos dirigimos a la re-expresión de la variable independiente en un esfuerzo para alinear la relación. Esto se hace de la misma manera, simplemente invirtiendo los papeles de x y y:
parms <- threepoint(y[i3], temperature[i3])
x <- box.cox(temperature, parms)
Los valores de parms
para la variable independiente (la temperatura) se encuentran $(-1, 253.75)$: en otras palabras, debemos expresar que la temperatura en grados Centígrados por encima de los $-254$C y el uso de su recíproca ($-1$ power). (Por razones técnicas, el Box-Cox transformación más agrega $1$ para el resultado). La relación resultante se muestra en el panel de la derecha.
Por ahora, cualquier persona con el mínimo de ciencias de fondo ha reconocido que los datos están "diciendo" nosotros para el uso absoluto de temperaturas--donde el desplazamiento es de $273$ en vez de $254$--porque esos serán físicamente significativa. (Cuando la última trama es re-dibujado con un desplazamiento de $273$ en vez de $254$, hay poco cambio visible. Un físico, a continuación, la etiqueta del eje x con $1/(1-x)$: es decir, el recíproco de la temperatura absoluta.)
Este es un buen ejemplo de cómo la exploración estadística necesita interactuar con la comprensión del objeto de investigación. De hecho, el recíproco de la temperatura absoluta se muestran todo el tiempo en las leyes de la física. En consecuencia, el uso de simples EDA métodos para explorar este siglo-viejo, simple, conjunto de datos, hemos redescubierto el Clausius-Clapeyron relación: el logaritmo de la presión de vapor es una función lineal de la recíproco de la temperatura absoluta. No sólo eso, tenemos una no muy mala estimación de cero absoluto ($-254$ grados C), a partir de la pendiente de la derecha de la parcela se puede calcular la entalpía específica de la vaporización, y--como resulta-un análisis cuidadoso de los residuos identifica un valor atípico (el valor a una temperatura de 0 $$ grados C), nos muestra cómo la enthalphy de vaporización varía (muy poco) con la temperatura (violando la Ley de los Gases Ideales), y en última instancia nos puede dar información precisa sobre el radio efectivo de el mercurio moléculas de gas! Todos los que desde el 19 de puntos de datos y algunas habilidades básicas en el EDA.