2016-04-19 3 views
0

ich die ksmooth Funktion oder KernSmooth Paket, um zu mir irgendetwas für das folgende Beispiel zu bekommen scheinen nicht zu funktionieren:R - Kann nicht bekommen ksmooth oder das KernSmooth Paket

x <- 1:100 
y <- 3*sin(x/10)+rnorm(100) 
plot(x,y) 

die wie folgt aussieht:

http://oi63.tinypic.com/jh5u37.jpg

Die ksmooth Funktion tut nichts und gibt mir nur die gleichen Punkte zurück. Mit dem KernSmooth-Paket kann ich nur eine lineare Approximation erhalten.

Warum gibt mir ksmooth(x,y,kernel="normal",bandwidth=0.5) nur die gleichen Punkte zurück? Wie benutze ich das KernSmooth-Paket? Vielen Dank.

+0

Können Sie beschreiben, was Sie mit dem Paket tun möchten? Möchten Sie nur eine geglättete Linie zum Plot hinzufügen? Wenn ja, fügen Sie einfach eine geglättete Linie über 'scatter.smooth (x, y)' hinzu. Sie können das gleiche tun (mit ein wenig mehr Arbeit) mit dem kernsmooth-Paket 'bkde' bietet eine Funktion für die Berechnung der" Binned Kernel Density Estimate ", verschiedene x-und y-Koordinaten, die eine Wahrscheinlichkeitsschätzung für Ihre Daten bieten. – lmkirvan

Antwort

0

Ihre gewählte Bandbreite = 0,5 ist zu klein.

x <- 1:100 
y <- 3*sin(x/10)+rnorm(100) 
plot(x,y) 
lines(ksmooth(x, y, "normal", bandwidth = 5), col = "red") 

library(KernSmooth) 
fit <- locpoly(x, y, bandwidth = 5) 
lines(fit, col = "blue") 

enter image description here

+0

Danke dafür. Wie würde ich das KernSmooth-Paket verwenden, um das gleiche Ergebnis zu erhalten? – AndrewK

+0

Danke dafür. – AndrewK

+0

Können wir die andere Funktion in KernSmooth verwenden, um Ähnliches zu tun? Führt einer von ihnen das gleiche Ergebnis wie ksmooth()? Ich finde die KernSmooth-Dokumentation verwirrend. – AndrewK