studio - q es una media ponderada
Cálculo de la media ponderada y la desviación estándar. (4)
El paquete Hmisc contiene las funciones que necesita.
Así:
x <- c(3.7,3.3,3.5,2.8)
wt <- c(5, 5, 4, 1)/15
xm <- wtd.mean(x, wt)
var <- wtd.var(x, wt)
sd <- sqrt(var)
Desafortunadamente, el autor del paquete Hmisc no incluyó una función wtd.sd
explícita. Usted tiene que la raíz cuadrada wtd.var.
Charles Kangai
Tengo una serie de tiempo x_0 ... x_t
. Me gustaría calcular la varianza ponderada exponencialmente de los datos. Es decir:
V = SUM{w_i*(x_i - x_bar)^2, i=1 to T} where SUM{w_i} = 1 and x_bar=SUM{w_i*x_i}
ref: http://en.wikipedia.org/wiki/Weighted_mean#Weighted_sample_variance
El objetivo es, básicamente, ponderar las observaciones que están más atrás en el tiempo, menos. Es muy sencillo de implementar, pero me gustaría usar la mayor funcionalidad posible. ¿Alguien sabe a qué corresponde esto en R?
Gracias
El paquete Hmisc proporciona esta funcionalidad:
http://rgm2.lab.nig.ac.jp/RGM2/func.php?rd_id=Hmisc:wtd.stats
R proporciona media ponderada. De hecho,? Weighted.mean muestra este ejemplo:
## GPA from Siegel 1994
wt <- c(5, 5, 4, 1)/15
x <- c(3.7,3.3,3.5,2.8)
xm <- weighted.mean(x, wt)
Un paso más:
v <- sum(wt * (x - xm)^2)
Yo también obtengo errores de Hmisc
cuando uso la función wtd.var()
. Afortunadamente, SDMTools
tiene una funcionalidad comparable, e incluso calcula SD directamente para usted, sin necesidad de tomar el sqrt de la variación.
library(SDMTools)
x <- c(3.7,3.3,3.5,2.8)
wt <- c(5, 5, 4, 1)/15 ## Note: no actual need to normalize weights to sum to 1, this will be done automatically.
wt.mean(x, wt)
wt.sd(x,wt)
wt.var(x, wt)