Media armónica con valor cero

11

¿Cómo la media armónica maneja los valores cero? ¿Cuál sería la media armónica de {3, 4, 5, 0} desde ?1/0=

Dez Udezue
fuente
3
Bueno, para sus datos, ¡la media armónica no está definida! ¿Por qué quieres usar una media armónica? Debes dar detalles de lo que quieres hacer. La media armónica se usa principalmente para situaciones en las que las observaciones cero son lógicamente imposibles, entonces, ¿qué está produciendo sus ceros? truncamiento? verdaderos ceros? La respuesta dependerá!
kjetil b halvorsen
Tengo un montón de números y estoy introduciendo "características" sobre ellos en un clasificador de tipo de red neuronal. Lo que hice fue excluir los valores cero.
Dez Udezue

Respuestas:

12

Así como la media geométrica de cualquier cosa y es , generalmente es natural definir la media armónica de cualquier cosa y para ser .0 0 00000

Una interpretación física de la media armónica es que si tiene resistencias en paralelo, la resistencia total es como si cada resistencia tuviera la resistencia media armónica. Si una de las resistencias no tiene resistencia, no hay resistencia en general (un corto), y esto es lo mismo que si todas las resistencias no tuvieran resistencia.

Si por alguna razón está considerando las medias armónicas de los números para que algunas sean negativas y otras positivas, entonces podría ser mejor decir que una media armónica de consigo misma no está definida. Sin embargo, en las aplicaciones que conozco para la media armónica, se usa en números no negativos.0

Douglas Zare
fuente
1
La analogía de la resistencia es útil.
Amrinder Arora
3

Si está trabajando en un lenguaje que admite Infinity en los cálculos correctamente, como R, puede definir la media armónica de esta manera:

harm <- function(x) 1/mean(1/x)

Entonces tratará adecuadamente con ceros de una manera natural:

> harm(c(6, 2, 9, 4, 3, 1))
[1] 2.541176
> harm(c(6, 2, 9, 4, 0, 3, 1))
[1] 0
Ken Williams
fuente
3
Es una cuestión de opinión, pero no creo que sea compatible con el infinito "correctamente".
Neil G
1
¿Qué tiene de malo? Solo está usando 1/0==Inf, y 1/Inf==0, que es la aritmética IEEE estándar.
Ken Williams
La razón por la que IEEE permitió eso fue que los cálculos regulares pueden desbordarse y de esta manera al menos recuperas un signo de tu cálculo. Creo que es mejor para los idiomas generar excepciones en dividir entre cero y dejar que el usuario las ignore explícitamente. Si el cálculo que condujo a su x fue una resta (ab), por ejemplo, entonces su resultado 1 / x no tiene sentido.
Neil G
10=1=0
1=11=(0)(0)=(00)=0=1=,
55
0111NaN
0

El algoritmo DFLOW de EPA usa lo siguiente cuando hay valores cero:

μH=(i=1nTn01/xinTn0)1×nTn0nT,

μHxinTn0

wrktsj
fuente