Weighting data with normal distribution
Alice Lin <alice.ly <at> gmail.com> writes:
I have a vector of binary data ? a string of 0?s and 1?s.
I want to weight these inputs with a normal kernel centered around entry x
so it is transformed into a new vector of data that takes into account the
values of the entries around it (weighting them more heavily if they are
near).
Example:
-
- -
- -
0 1 0 0 1 0 0 1 1 1 1
If x = 3, it?s current value is 0 but it?s new value with the Gaussian
weighting around would be something like .1*0+.5*1+1*0+0.5*0+.1*1= 0.6
I want to be able to play with adjusting the variance to different values as
well.
I?ve found wkde in the mixtools library and think it may be useful but I
have not figured out how to use it yet.
Any tips would be appreciated.
Thanks!
I don't know anything about wkde. But the filter function in stats package should do what you want.
x <- c(0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1) filter(x, c(.1, .5, 1, .5, .1))
Time Series: Start = 1 End = 11 Frequency = 1 [1] NA NA 0.6 0.6 1.0 0.6 0.7 1.6 2.1 NA NA In the signal package, there is also a variety of windows, including the gausswin function. However, the filter function in the signal package masks the filter function from the stats package
stats::filter(x, gausswin(5, 2.68))
Mark Lyman Statistician, ATK Launch Systems