44 votos

¿Cómo sumar y restar valores de una media?

Digamos que tengo 100 números que están promediados:

number of values = 100
total sum of values = 2000
mean = 2000 / 100 => 20

Si quiero añadir un valor y averiguar la nueva media:

total sum of values = 2000 + 100
mean = 2100 / 101 => 20.79

Si quiero restar un valor y averiguar la nueva media:

total sum of values = 2100 - 100
mean = 2000 / 100 => 20

Parece que funciona, pero ¿es correcto lo anterior?

¿Es ésta la forma correcta de sumar/restar valores de una media sin tener que volver a sumar los 100 números primero?

82voto

Aristotle Puntos 138

Sé que es un hilo antiguo pero yo tenía el mismo problema. Quiero añadir un valor a un promedio existente sin calcularlo de nuevo a la suma total.

para añadir un valor a una media existente sólo debemos saber para cuántos valores se calcula la media: $$ average_{new} = average_{old} + \frac{ value_{new} - average_{old}}{size_{new}} $$

26 votos

Puede que sea un tipo inteligente, pero la respuesta aceptada anteriormente me resultaba incomprensible. Esta respuesta funciona perfectamente y puedo entenderla. Gracias.

3 votos

¡@501 - no implementado gracias!

1 votos

Esta respuesta era exactamente lo que necesitaba. Elegante.

37voto

Eric Puntos 156

No.

Los coches pueden tener cosas aún peores de lo que otros han sugerido.

NatSemi (y sin duda otros) fabrican reguladores de tensión diseñados para sobrevivir en un entorno de automoción.
Por ejemplo, el LM2940 LDO

Dicen que

  • Diseñado también para aplicaciones vehiculares, el LM2940/ LM2940C y todos los circuitos regulados están protegidos contra instalaciones de baterías invertidas o saltos de 2 baterías.

    Durante los transitorios de la línea, como la descarga de carga cuando la tensión de entrada puede momentáneamente la tensión máxima de funcionamiento especificada, el regulador se apagará automáticamente para proteger tanto los circuitos internos como la carga.

    El LM2940/LM2940C no puede ser dañado por la inserción temporal de un espejo. Las características conocidas del regulador como la protección contra cortocircuitos y sobrecargas térmicas. protección contra cortocircuitos y sobrecargas térmicas.

3 votos

Y $ns$ es la antigua suma, como se puede deducir de la primera ecuación.

2 votos

Estoy tentado a downvote como ns no se explica en la respuesta

0 votos

Al principio comenté que la respuesta de @501 era más clara, pero me di cuenta de que no entendía del todo el porqué de la pregunta. Esta respuesta, aunque más densa, explica realmente el resultado.

26voto

Damien Puntos 1

Para ponerlo en forma programática, y ya que la pregunta es sumar / restar:

Substraer un valor:

average = ((average * nbValues) - value) / (nbValues - 1);

Añade un valor:

average = average + ((value - average) / nbValues)

10 votos

Oh, gracias a Dios que hay otro programador aquí. Esas ecuaciones matemáticas hacen que me duela la cabeza.

0 votos

@MattD: ver también esta respuesta en StackOverflow para reemplazar un número en una media corrida.

2 votos

La primera fórmula no debería terminar con / nValues + 1) en lugar de / nValues) ?

3voto

Sushrut Thakur Puntos 9

Otra fórmula puede ser

$$\text{NewAvg} = \frac{( \text{OldAvg} \cdot \text{OldSize} ) + \text{NewValue} } { \text{NewSize}}$$

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