Tôi có một chức năng hạt nhân như vậy:Làm thế nào để ngoại suy vượt ra ngoài các điểm x được chuyển tới `ksmooth`?
x <- 1:100
y <- rnorm(100, mean=(x/2000)^2)
plot(x,y)
kernel <- ksmooth(x,y, kernel="normal", bandwidth=10)
print(kernel$y)
Nếu tôi cố gắng để dự đoán tại một điểm bên ngoài của dãy các giá trị x, nó sẽ cho tôi NaN
, bởi vì nó đang cố gắng suy luận vượt ra ngoài dữ liệu:
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
Ngay cả khi tôi thay đổi range.x
nó không nhúc nhích:
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
làm thế nào để tôi có được ksmooth
chức năng ngoại suy vượt ra ngoài dữ liệu? Tôi biết đây là một ý tưởng tồi trong lý thuyết, nhưng trong thực tế vấn đề này luôn luôn xảy ra.
Tôi giả sử một câu hỏi phụ sẽ là: * Phạm vi '' làm gì? * Tài liệu dường như chỉ ra rằng đó là "phạm vi điểm được bao phủ trong đầu ra. " Nhưng nó dường như không có ảnh hưởng đến đầu ra ở đây? – Hunle
Bạn đã cân nhắc sử dụng bkde2D {KernSmooth} để thay thế. Theo mặc định, điều này ngoại suy 1,5x băng thông theo mỗi hướng. Ngoại suy thêm về nguy hiểm của bạn, và chắc chắn rằng bạn hiểu những gì bạn đang làm và đó là những hạn chế. Nếu bạn thực sự cần ngoại suy, thì có lẽ bạn nên cân nhắc việc gắn dữ liệu vào một mô hình có mối quan hệ với thực tế và tạo thành một cơ sở hợp lý hơn để ngoại suy. – dww
Tôi sẽ thử. Vấn đề là rất khó để chạy một số loại k-folds cross-validation khi không có ngoại suy, bởi vì bất cứ khi nào tôi chia kth fold thành train và test, một số ví dụ thử nghiệm chắc chắn nằm ngoài phạm vi các ví dụ đào tạo. Tôi có phải là người duy nhất thất vọng bởi điều này không? – Hunle