Dada una serie de números para los eventos X e Y, calcule el coeficiente de correlación de Pearson. La probabilidad de cada evento es igual, por lo que los valores esperados se pueden calcular simplemente sumando cada serie y dividiendo por el número de ensayos.
Entrada
1 6.86
2 5.92
3 6.08
4 8.34
5 8.7
6 8.16
7 8.22
8 7.68
9 12.04
10 8.6
11 10.96
Salida
0.769
El código más corto gana. La entrada puede ser por stdin o arg. La salida será por stdout.
Editar: No se deben permitir las funciones integradas (es decir, el valor esperado calculado, la varianza, la desviación, etc.) para permitir una mayor diversidad en las soluciones. Sin embargo, siéntase libre de demostrar un lenguaje que sea adecuado para la tarea usando builtins (para exhibición).
Basado en la idea de David de entrada para Mathematica (86 caracteres usando la media incorporada)
m=Mean;x=d[[All,1]];y=d[[All,2]];(m@(x*y)-m@x*m@y)/Sqrt[(m@(x^2)-m@x^2)(m@(y^2)-m@y^2)]
m = Mean;
x = d[[All,1]];
y = d[[All,2]];
(m@(x*y) - m@x*m@y)/((m@(x^2) - m@x^2)(m@(y^2) - m@y^2))^.5
Bordeando usando nuestra propia media (101 caracteres)
m=Total[#]/Length[#]&;x=d[[All,1]];y=d[[All,2]];(m@(x*y)-m@x*m@y)/((m@(x^2)-m@x^2)(m@(y^2)-m@y^2))^.5
m = Total[#]/Length[#]&;
x = d[[All,1]];
y = d[[All,2]];
(m@(x*y)-m@x*m@y)/((m@(x^2)-m@x^2)(m@(y^2)-m@y^2))^.5
m=Total@#/Length@#&