Zufällig, kurvige Verteilung von Datenpunkten
-
11-10-2019 - |
Frage
Hintergrund
ein Beispiel für R-Programmierung sorgen.
Problem
Erstellen Sie eine Verteilung von Werten, die, wenn modelliert, erzeugt eine Kurve, dass ähnelt:
Im Grunde möchte ich so etwas wie zu tun:
x <- seq( 0, 2, by=0.01 )
y <- sin( 2 * pi * cos( x - 1/2 ) )
plot( x, y * runif( x ) )
Aber ohne die Ansammlung von Daten Punkten um 0,5:
Frage
Wie würden Sie eine solche Verteilung erstellen?
Danke!
Lösung
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()
Andere Tipps
Hmmm ... Ich bin mir nicht sicher, ob Sie eine bestimmte statistische Eigenschaft benötigen für Ihre Distribution, aber so etwas wie dies entledigt sich der Klumpen
plot(x,y+rnorm(length(x), 0, 0.2))
Da sin (2 * pi * cos (x-0,5)) bei 0,5 bis Null geht, sollten Sie versuchen, nur das Hinzufügen 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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow