Volevo utilizzare una funzione che mi consenta di ottenere rapidamente una deviazione standard di un annuncio vettoriale, consentendomi di includere i pesi per gli elementi nel vettore. cioèdeviazione standard rapida con i pesi
sd(c(1,2,3)) #weights all equal 1
#[1] 1
sd(c(1,2,3,3,3)) #weights equal 1,1,3 respectively
#[1] 0.8944272
Per mezzi appesantiti posso usare wt.mean()
da library(SDMTools)
esempio
> mean(c(1,2,3))
[1] 2
> wt.mean(c(1,2,3),c(1,1,1))
[1] 2
>
> mean(c(1,2,3,3,3))
[1] 2.4
> wt.mean(c(1,2,3),c(1,1,3))
[1] 2.4
ma la funzione wt.sd
non sembra fornire quello che ho pensato che volevo:
> sd(c(1,2,3))
[1] 1
> wt.sd(c(1,2,3),c(1,1,1))
[1] 1
> sd(c(1,2,3,3,3))
[1] 0.8944272
> wt.sd(c(1,2,3),c(1,1,3))
[1] 1.069045
mi aspetto una funzione che restituisce 0.8944272
da me ponderata sd
. Preferibilmente sarei usando questo su un data.frame come:
data.frame(x=c(1,2,3),w=c(1,1,3))
Nota i documenti da 'SDMTools :: wt.var': "wt.var è la varianza imparziale del calcolo media ponderata utilizzando le equazioni di GNU Scentific Library". – Roland