Ich habe eine Kernfunktion wie folgt:Wie extrapoliere ich über die x Punkte hinaus, die an "ksmooth" übergeben wurden?
x <- 1:100
y <- rnorm(100, mean=(x/2000)^2)
plot(x,y)
kernel <- ksmooth(x,y, kernel="normal", bandwidth=10)
print(kernel$y)
Wenn ich versuche, außerhalb des Bereichs der x-Werte an einem Punkt vorherzusagen, wird es mir NaN
geben, weil sie über die Daten zu extrapolieren versucht:
x <- 1:100
y <- rnorm(100, mean=(x/2000)^2)
plot(x,y)
kernel <- ksmooth(x,y, kernel="normal", bandwidth=10, x.points=c(130))
print(kernel$y)
> print(kernel$y)
[1] NA
Selbst wenn ich range.x
ändert sich nicht rühren:
x <- 1:100
y <- rnorm(100, mean=(x/2000)^2)
plot(x,y)
kernel <- ksmooth(x,y, kernel="normal", bandwidth=10, range.x=c(1,200) , x.points=c(130))
print(kernel$y)
> print(kernel$y)
[1] NA
Wie erhalte ich die ksmooth
Funktion Extrapolieren über die Daten hinaus? Ich weiß, das ist eine schlechte Idee in der Theorie, aber in der Praxis kommt dieses Problem die ganze Zeit auf.
Ich nehme an, eine Nebenfrage wäre: * Was bedeutet 'range.x'? * Die Dokumentation scheint anzuzeigen, dass es" der Bereich von Punkte in der Ausgabe abgedeckt werden. " Aber es scheint hier keinen Einfluss auf die Ausgabe zu haben? – Hunle
Haben Sie stattdessen bkde2D {KernSmooth} in Erwägung gezogen? Standardmäßig extrapoliert dies das 1,5-fache der Bandbreite in jeder Richtung. Extrapoliere weiter auf deine Gefahr hin und vergewissere dich, dass du verstehst, was du tust und welche Einschränkungen es gibt. Wenn Sie wirklich extrapolieren müssen, sollten Sie vielleicht überlegen, die Daten an ein Modell anzupassen, das einen Bezug zur Realität hat und eine vernünftigere Grundlage für die Extrapolation bildet. – dww
Ich werde es versuchen. Das Problem ist, dass es wirklich schwierig ist, irgendeine Art von Kreuzvalidierung durchzuführen, wenn keine Extrapolation stattfindet, denn jedes Mal, wenn ich die k-te Falte in Zug und Test aufspalte, liegen einige der Testbeispiele zwangsläufig außerhalb des Bereichs von die Trainingsbeispiele. Bin ich der Einzige, der dadurch frustriert ist? – Hunle