2016-04-19 2 views
0

я не могу показаться, чтобы получить функцию ksmooth или пакет KernSmooth дать мне что-нибудь для следующего примера:R - не удается получить ksmooth или пакет KernSmooth работать

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

который выглядит следующим образом:

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

функция ksmooth ничего не делает, а просто возвращает мне одни и те же точки. Использование пакета KernSmooth, которое я могу получить, является линейным приближением.

Почему ksmooth(x,y,kernel="normal",bandwidth=0.5) просто верните мне те же очки? Также как использовать пакет KernSmooth? Благодарю.

+0

Можете ли вы описать, что вы хотели бы сделать с пакетом? Вы просто хотите добавить сглаженную линию к сюжету? Если это так, просто добавьте сглаженную строку через 'scatter.smooth (x, y)'. Вы можете сделать то же самое (с небольшой работой) с использованием пакета kernsmooth 'bkde' предоставляет функцию для вычисления« оценки плотности двоичного ядра », различные координаты x и y, которые предоставляют оценку вероятности для ваших данных. – lmkirvan

ответ

0

Ваша выбранная ширина полосы = 0,5 слишком мала.

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

Спасибо за это. Как я могу использовать пакет KernSmooth для получения того же результата? – AndrewK

+0

Спасибо за это. – AndrewK

+0

Можно ли использовать другую функцию в KernSmooth, чтобы сделать аналогичную вещь? Кто-нибудь из них дает тот же результат, что и ksmooth()? Я считаю, что документация KernSmooth запутана. – AndrewK