¿Son los resultados de la entropía dependientes del orden cuando se usa Sametest?
-
26-10-2019 - |
Pregunta
Mathematica Entropy
la función depende del orden cuando se usa el SameTest
opción.
Eso es:
Entropy[RandomSample[Range[11]], SameTest->(Abs[#1-#2]>1&) ]
dará diferentes resultados muchas veces.
Supongo que esto es porque Entropy[]
es de hecho Union
-inge la lista, pero a diferencia de Union
, en realidad está reemplazando uno de los SameTest
valores con el otro, y este reemplazo es sensible al orden.
¿Es este un error o es el comportamiento esperado?
Solución
Puedes ver usando Trace[ ]
que el Entropy[ ]
La función termina usando Tally[ ]
para contar la frecuencia de cada estado (números en este caso).
Así por ejemplo
Entropy[{1,2,3,4}, SameTest->(Abs[#1-#2]>1&)]
llamadas
Tally[{1,2,3,4}, SameTest->(Abs[#1-#2]>1&)]
lo que da
-> {{1, 3}, {2, 1}}
Porque se agrupa {1,3,4} y {2}
Pero si pides
Tally[{2,1,3,4}, SameTest->(Abs[#1-#2]>1&)]
usted obtiene
-> {{2, 2}, {1, 2}}
Porque se agrupa {2,4} y {1,3}
Resultando en una distribución de estados diferente (2,2) vs (3,1) antes y, por lo tanto, en un valor de entropía diferente.
Creo que el problema surge porque su Sametest no está dividiendo el dominio en dos clases de equivalencia, como debería.
Editar
Solo reformulando la última oración:
MMA asume que
a === b && b === c Implies a === c
Lo cual no es cierto en su caso. Por ejemplo
2 === 4 && 4 === 1 but 2 !=== 1