3

バックグラウンド

Rプログラミングの例を提供します。

問題

モデル化すると、次のような曲線を生成する値の分布を作成します。

基本的に、私は次のようなことをしたいと思います。

x <- seq( 0, 2, by=0.01 )
y <- sin( 2 * pi * cos( x - 1/2 ) )
plot( x, y * runif( x ) )

しかし、0.5前後のデータポイントの塊がなければ:

質問

そのようなディストリビューションをどのように作成しますか?

ありがとうございました!

4

3 に答える 3

3
slo<-0.5 #slope of underlying trend
sta<--0.5 #starting y value
amp<-0.2 #amplitude of sine wave
fre<-3 #frequency of sine wave
noi<-0.8 #amplitude of noise term
x<-seq(0,2,0.01)
y<-sta+(slo*x)+(amp*sin(fre*x)) #y no noise
ywnoise<-y+(noi*(runif(length(x))-0.5)) #y with noise

plot(x,ywnoise)
lines(x,y, col="orange")
grid()
于 2010-12-19T23:32:48.917 に答える
1

うーん...あなたの分布に特定の統計的特性が必要かどうかはわかりませんが、このようなものは塊を取り除きます

plot(x,y+rnorm(length(x), 0, 0.2))
于 2010-12-19T23:20:29.370 に答える
1

sin(2 * pi * cos(x-0.5))は0.5でゼロになるので、追加してみてくださいrunif()

x <- seq( 0, 2, by=0.01 )
y <- sin( 2 * pi * cos( x - 1/2 ) ) +runif(201)
plot( x,y  )
lines(loess(y~x)$x, lowess(y~x)$y)
于 2010-12-19T23:23:10.633 に答える