¿Cómo calculo una desviación estándar ponderada? En Excel?


29

Entonces, tengo un conjunto de porcentajes de datos como este:

100   /   10000   = 1% (0.01)
2     /     5     = 40% (0.4)
4     /     3     = 133% (1.3) 
1000  /   2000    = 50% (0.5)

Quiero encontrar la desviación estándar de los porcentajes, pero ponderada por su volumen de datos. es decir, el primer y último punto de datos deben dominar el cálculo.

¿Cómo puedo hacer eso? ¿Y hay una manera simple de hacerlo en Excel?


La fórmula con (M-1) / M es correcta. Si tiene alguna duda, verifíquela estableciendo todos los pesos iguales a 1, y obtendrá la fórmula clásica para la estimación imparcial de la desviación estándar con (N-1) en el denominador. Para whuber: inusual no significa incorrecto.

1
La fórmula con (M-1) / M NO ES CORRECTA. Imagine que agrega un millón de puntos con pesos de una billonésima parte. No cambia su respuesta en absoluto independientemente de cuáles sean esos pesos, pero su término se convierte en 1? ¡Absolutamente no! Si te importa eso ( M - 1 ) / M 1 , entonces también te importa que esto esté mal. (M1)/M(M1)/M1
Rex Kerr


Me pregunto por qué quieres la desviación estándar aquí. ¡solo tienes números! ¿Cómo es que hay demasiados números? Especialmente cuando los porcentajes se explican y entienden más fácilmente. 4
Probabilidadlogística

@probabilityislogic fue un ejemplo simplificado para mantener la pregunta corta.
Yahel

Respuestas:


35

La fórmula para la desviación estándar ponderada es:

i=1Nwi(xix¯)2(M1)Mi=1Nwi,

dónde

es el número de observaciones.N

es el número de pesos distintos de cero.M

soy los pesoswi

son las observaciones.xi

es la media ponderada.x¯

Recuerde que la fórmula para la media ponderada es:

x¯=i=1Nwixii=1Nwi.

Use los pesos apropiados para obtener el resultado deseado. En su caso, sugeriría usar .Number of cases in segmentTotal number of cases

Para hacer esto en Excel, primero debe calcular la media ponderada. Luego calcule el en una columna separada. El resto debe ser muy fácil.(xix¯)2


2
@ Gilles, tienes razón. deps_stats, la fracción en la SD es inusual. ¿Tiene una cita para esta fórmula o al menos puede explicar la razón para incluir ese término? (M1)/M
whuber

44
@Aaron Los pesos no siempre se definen para sumar a la unidad, como lo demuestran los pesos dados en esta pregunta.
whuber

2
(-1) Estoy rechazando esta respuesta porque no se ha proporcionado ninguna justificación o referencia para el término (y estoy bastante seguro de que no hace que la estimación de la varianza sea imparcial, lo que sería evidente motivación). (M1)/M
whuber

1
A la luz de la referencia agregada (que no es autorizada, pero es una referencia), estoy eliminando el voto negativo. Sin embargo, no estoy votando esta respuesta porque los cálculos muestran que la ponderación propuesta no produce una estimación imparcial de nada (excepto cuando todas las ponderaciones son iguales a ). La verdadera dificultad aquí, que es la culpa de la pregunta, no la respuesta, es que no está claro qué está tratando de estimar esta "desviación estándar ponderada". Sin un estimado definitivo, no hay justificación para introducir un factor ( M - 1 ) / M para "reducir el sesgo" (o por cualquier otro motivo). 1(M1)/M
whuber

1
@Mikhail Tienes razón en que "inusual" y "correcto" tienen poco que ver el uno con el otro. Sin embargo, los resultados inusuales exigen implícitamente un poco más de justificación porque ser inusual es un indicador de que puede haberse cometido un error. Su argumento no es válido: aunque la fórmula se reduce a uno para un estimador imparcial cuando todos los pesos son iguales, eso no implica que el estimador siga siendo imparcial cuando se usan pesos desiguales. No estoy afirmando que su conclusión sea errónea, sino solo que hasta ahora no se ha ofrecido una justificación válida.
whuber

18

Las fórmulas están disponibles en varios lugares, incluida Wikipedia .

La clave es notar que depende de lo que significan los pesos . En particular, obtendrá diferentes respuestas si los pesos son frecuencias (es decir, solo está tratando de evitar sumar la suma total), si los pesos son en realidad la varianza de cada medición, o si son solo algunos valores externos imponer en sus datos.

En su caso, parece que superficialmente los pesos son frecuencias pero no lo son . Usted genera sus datos a partir de frecuencias, pero no se trata simplemente de tener 45 registros de 3 y 15 registros de 4 en su conjunto de datos. En cambio, debe usar el último método. (En realidad, todo esto es basura, ¡ realmente necesita usar un modelo más sofisticado del proceso que genera estos números! Aparentemente no tiene algo que escupe números distribuidos normalmente, por lo que caracteriza el sistema con la desviación estándar no es lo correcto).

En cualquier caso, la fórmula para la varianza (a partir de la cual se calcula la desviación estándar de la manera normal) con pesos de "confiabilidad" es

wi(xix)2wiwi2wi

x=wixi/wi

No tiene una estimación de los pesos, lo que supongo que quiere tomar para ser proporcional a la fiabilidad. Tomar porcentajes de la forma en que va a hacer que el análisis sea complicado incluso si son generados por un proceso de Bernoulli, porque si obtiene una puntuación de 20 y 0, tiene un porcentaje infinito. La ponderación por el inverso del SEM es algo común y, a veces, óptimo. Tal vez debería usar una estimación bayesiana o un intervalo de puntaje de Wilson .


2
+1. La discusión de los diferentes significados de los pesos fue lo que estaba buscando en este hilo todo el tiempo. Es una contribución importante a todas las preguntas de este sitio sobre estadísticas ponderadas. (Sin embargo, estoy un poco preocupado por las observaciones entre paréntesis con respecto a las distribuciones normales y las desviaciones estándar, porque sugieren incorrectamente que las SD no tienen uso fuera de un modelo basado en la normalidad.)
whuber

@whuber - Bueno, ¡el teorema del límite central para el rescate, por supuesto! Pero por lo que estaba haciendo el OP, tratar de caracterizar ese conjunto de números con una media y una desviación estándar parece extremadamente desaconsejable. Y en general, para muchos usos, la desviación estándar termina atrayendo a uno a un falso sentimiento de comprensión. Por ejemplo, si la distribución es cualquier cosa menos normal (o una buena aproximación de la misma), confiar en la desviación estándar le dará una mala idea de la forma de las colas, cuando es exactamente esas colas lo que probablemente más le interese en estadística pruebas.
Rex Kerr

@RexKerr No podemos culpar a la desviación estándar si la gente le da interpretaciones que no se merecen. Pero alejémonos de la normalidad y consideremos la clase mucho más amplia de distribuciones unimodales simétricas continuas con varianza finita (por ejemplo). Luego, entre 89 y 100 por ciento de la distribución se encuentra dentro de dos desviaciones estándar. A menudo, es bastante útil saberlo (y el 95% se encuentra bastante en el medio, por lo que nunca es más de un 7% de descuento); con muchas distribuciones comunes, el aspecto de simetría de caída no cambia mucho (por ejemplo, mire el exponencial, por ejemplo) ...
ctd

CTD ... - o si no hacemos ninguna de estas suposiciones, siempre hay los límites ordinarios de Chebyshev que hacen al menos decir algo sobre las colas y desviación estándar ..
Glen_b -Reinstate Mónica

1
@ Gabriel - Sí, lo siento, estaba siendo descuidado. (Me imagino que la gente puede saber cuál es cuál al echar un vistazo). He corregido mi descripción.
Rex Kerr

5
=SQRT(SUM(G7:G16*(H7:H16-(SUMPRODUCT(G7:G16,H7:H16)/SUM(G7:G16)))^2)/
     ((COUNTIFS(G7:G16,"<>0")-1)/COUNTIFS(G7:G16,"<>0")*SUM(G7:G16)))

La columna Gson pesos, la columna Hson valores


Using Ctrl+Shift+ Enter was a gotcha for me, but this seems to work otherwise.
philipkd

1

If we treat weights like probabilities, then we build them as follows:

pi=viivi,
where vi - data volume.

Next, obviously the weighted mean is

μ^=ipixi,
and the variance:
σ^2=ipi(xiμ^)2

0
Option Explicit

Function wsdv(vals As Range, wates As Range)
Dim i, xV, xW, y As Integer
Dim wi, xi, WgtAvg, N
Dim sumProd, SUMwi

    sumProd = 0
    SUMwi = 0
    N = vals.Count  ' number of values to determine W Standard Deviation
    xV = vals.Column  ' Column number of first value element
    xW = wates.Column  ' Column number of first weight element
    y = vals.Row - 1  ' Row number of the values and weights

    WgtAvg = WorksheetFunction.SumProduct(vals, wates) / WorksheetFunction.Sum(wates)

    For i = 1 To N  ' step through the elements, calculating the sum of values and the sumproduct
        wi = ActiveSheet.Cells(i + y, xW).Value  ' (i+y, xW) is the cell containing the weight element
        SUMwi = SUMwi + wi
        xi = ActiveSheet.Cells(i + y, xV).Value  ' (i+y, xV) is the cell containing the value element
        sumProd = sumProd + wi * (xi - WgtAvg) ^ 2
    Next i

    wsdv = (sumProd / SUMwi * N / (N - 1)) ^ (1 / 2)  ' output of weighted standard deviation

End Function

2
Welcome to the site, @uswer71015. This seems to be only code. Can you add some text / explanation of how the code works & how it answers the question?
gung - Reinstate Monica
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.