12 votos

¿Correlación de Pearson de conjuntos de datos con posible desviación estándar cero?

Tengo un problema para calcular el coeficiente de correlación de Pearson de conjuntos de datos con una desviación estándar posiblemente nula (es decir, todos los datos tienen el mismo valor).

Supongamos que tengo los siguientes dos conjuntos de datos:

float x[] = {2, 2, 2, 3, 2};
float y[] = {2, 2, 2, 2, 2};

El coeficiente de correlación "r", se calcularía utilizando la siguiente ecuación:

float r = covariance(x, y) / (std_dev(x) * std_dev(y));

Sin embargo, como todos los datos del conjunto de datos "y" tienen el mismo valor, la desviación estándar std_dev(y) sería cero y "r" sería indefinida.

¿Hay alguna solución para este problema? ¿O debo utilizar otros métodos para medir la relación de datos en este caso?

9voto

patfla Puntos 1

Los de la "teoría del muestreo" te dirán que no existe tal estimación. Pero se puede obtener una, sólo hay que ser razonable con la información previa y hacer un trabajo matemático mucho más duro.

Si se especifica un método bayesiano de estimación, y la posterior es la misma que la anterior, entonces se puede decir que los datos no dicen nada sobre el parámetro. Porque las cosas pueden ponerse "singulares" en nosotros, entonces no podemos usar espacios de parámetros infinitos. Estoy asumiendo que debido a que usted utiliza la correlación de Pearson, usted tiene una probabilidad normal bivariada:

$$p(D|\mu_x,\mu_y,\sigma_x,\sigma_y,\rho)=\left(\sigma_x\sigma_y\sqrt{2\pi(1-\rho^2)}\right)^{-N}exp\left(-\frac{\sum_{i}Q_i}{2(1-\rho^2)}\right)$$ donde $$Q_i=\frac{(x_i-\mu_x)^2}{\sigma_x^2}+\frac{(y_i-\mu_y)^2}{\sigma_y^2}-2\rho\frac{(x_i-\mu_x)(y_i-\mu_y)}{\sigma_x\sigma_y}$$

Ahora, para indicar que un conjunto de datos puede ser el mismo valor, escribe $y_i=y$ y entonces obtenemos:

$$\sum_{i}Q_i=N\left[\frac{(y-\mu_y)^2}{\sigma_y^2}+\frac{s_x^2 + (\overline{x}-\mu_x)^2}{\sigma_x^2}-2\rho\frac{(\overline{x}-\mu_x)(y-\mu_y)}{\sigma_x\sigma_y}\right]$$ donde $$s_x^2=\frac{1}{N}\sum_{i}(x_i-\overline{x})^2$$

Y así su probabilidad depende de cuatro números, $s_x^2,y,\overline{x},N$ . Así que quiere una estimación de $\rho$ por lo que hay que multiplicar por un previo, e integrar los parámetros molestos $\mu_x,\mu_y,\sigma_x,\sigma_y$ . Ahora, para preparar la integración, "completamos el cuadrado" $$\frac{\sum_{i}Q_i}{1-\rho^2}=N\left[\frac{\left(\mu_y-\left[y-(\overline{x}-\mu_x)\frac{\rho\sigma_y}{\sigma_x}\right]\right)^2}{\sigma_y^2(1-\rho^{2})}+\frac{s_x^2}{\sigma_{x}^{2}(1-\rho^{2})} + \frac{(\overline{x}-\mu_x)^2}{\sigma_x^2}\right]$$

Ahora debemos pecar de precavidos y asegurar una probabilidad correctamente normalizada. Así no nos meteremos en problemas. Una de estas opciones es utilizar una priorización débilmente informativa, que simplemente pone una restricción en el rango de cada uno. Así que tenemos $L_{\mu}<\mu_x,\mu_y<U_{\mu}$ para las medias con previo plano y $L_{\sigma}<\sigma_x,\sigma_y<U_{\sigma}$ para las desviaciones estándar con jeffreys prior. Estos límites son fáciles de establecer con un poco de "sentido común" pensando en el problema. Tomaré una prioridad no especificada para $\rho$ y así obtenemos (el uniforme debería funcionar bien, si no se trunca la singularidad en $\pm 1$ ):

$$p(\rho,\mu_x,\mu_y,\sigma_x,\sigma_y)=\frac{p(\rho)}{A\sigma_x\sigma_y}$$

Dónde $A=2(U_{\mu}-L_{\mu})^{2}[log(U_{\sigma})-log(L_{\sigma})]^{2}$ . Esto da un posterior de:

$$p(\rho|D)=\int p(\rho,\mu_x,\mu_y,\sigma_x,\sigma_y)p(D|\mu_x,\mu_y,\sigma_x,\sigma_y,\rho)d\mu_y d\mu_x d\sigma_x d\sigma_y$$

$$=\frac{p(\rho)}{A[2\pi(1-\rho^2)]^{\frac{N}{2}}}\int_{L_{\sigma}}^{U_{\sigma}}\int_{L_{\sigma}}^{U_{\sigma}}\left(\sigma_x\sigma_y\right)^{-N-1}exp\left(-\frac{N s_x^2}{2\sigma_{x}^{2}(1-\rho^{2})}\right) \times$$ $$\int_{L_{\mu}}^{U_{\mu}}exp\left(-\frac{N(\overline{x}-\mu_x)^2}{2\sigma_x^2}\right)\int_{L_{\mu}}^{U_{\mu}}exp\left(-\frac{N\left(\mu_y-\left[y-(\overline{x}-\mu_x)\frac{\rho\sigma_y}{\sigma_x}\right]\right)^2}{2\sigma_y^2(1-\rho^{2})}\right)d\mu_y d\mu_x d\sigma_x d\sigma_y$$

Ahora la primera integración sobre $\mu_y$ puede hacerse mediante un cambio de variables $z=\sqrt{N}\frac{\mu_y-\left[y-(\overline{x}-\mu_x)\frac{\rho\sigma_y}{\sigma_x}\right]}{\sigma_y\sqrt{1-\rho^{2}}}\implies dz=\frac{\sqrt{N}}{\sigma_y\sqrt{1-\rho^{2}}}d\mu_y$ y la primera integral sobre $\mu_y$ se convierte:

$$\frac{\sigma_y\sqrt{2\pi(1-\rho^{2})}}{\sqrt{N}}\left[\Phi\left( \frac{U_{\mu}-\left[y-(\overline{x}-\mu_x)\frac{\rho\sigma_y}{\sigma_x}\right]}{\frac{\sigma_y}{\sqrt{N}}\sqrt{1-\rho^{2}}} \right)-\Phi\left( \frac{L_{\mu}-\left[y-(\overline{x}-\mu_x)\frac{\rho\sigma_y}{\sigma_x}\right]}{\frac{\sigma_y}{\sqrt{N}}\sqrt{1-\rho^{2}}} \right)\right]$$

Y ya se ve que aquí no hay soluciones analíticas posibles. Sin embargo, también vale la pena señalar que el valor $\rho$ no ha abandonado las ecuaciones. Esto significa que los datos y la información previa todavía tienen algo que decir sobre la verdadera correlación. Si los datos no dijeran nada sobre la correlación, nos quedaríamos simplemente con $p(\rho)$ como la única función de $\rho$ en estas ecuaciones.

También muestra cómo el paso al límite de los límites infinitos para $\mu_y$ "tira" parte de la información sobre $\rho$ que está contenida en la función CDF normal de aspecto complicado $\Phi(.)$ . Ahora bien, si tienes muchos datos, entonces pasar al límite está bien, no pierdes mucho, pero si tienes información muy escasa, como en tu caso, es importante guardar cada trozo que tengas. Esto supone unas matemáticas feas, pero este ejemplo no es demasiado difícil de hacer numéricamente. Así que podemos evaluar la probabilidad integrada para $\rho$ a valores de digamos $-0.99,-0.98,\dots,0.98,0.99$ con bastante facilidad. Sólo hay que sustituir las integrales por sumas sobre intervalos lo suficientemente pequeños - así se tiene una triple suma

8voto

Xenph Yan Puntos 20883

Estoy de acuerdo con sesqu en que la correlación es indefinida en este caso. Dependiendo de tu tipo de aplicación podrías, por ejemplo, calcular la similitud de Gower entre ambos vectores, que es: $gower(v1,v2)=\frac{\sum_{i=1}^{n}\delta(v1_i,v2_i)}{n}$ donde $\delta$ representa el kronecker-delta aplicada como función sobre $v1,v2$ .

Así, por ejemplo, si todos los valores son iguales, gower(.,.)=1. Si por el contrario sólo difieren en una dimensión, gower(.,.)=0,9. Si difieren en todas las dimensiones, gower(.,.)=0 y así sucesivamente.

Por supuesto, esto no es una medida de correlación, pero permite calcular lo cerca que está el vector con s>0 del que tiene s=0. Por supuesto, también puedes aplicar otras métricas, si sirven mejor a tu propósito.

7voto

Sean Preston Puntos 318

La correlación es indefinida en ese caso. Si tiene que definirla, yo la definiría como 0, pero considere una simple diferencia media absoluta en su lugar.

0voto

JornC Puntos 81

Esta pregunta viene de los programadores, así que yo sugeriría poner el cero. No hay evidencia de una correlación, y la hipótesis nula sería cero (sin correlación). Podría haber otro conocimiento del contexto que proporcionara una correlación "típica" en un contexto, pero el código podría ser reutilizado en otro contexto.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X