Мне нужна помощь по вставке изготовленных на заказ ядер в пакеты R, это возможно?В пакете kdensity говорится: «Функция ядра может быть выбрана из списка встроенных ядер или сделана на заказ».
В Интернете я нашел учебное пособие о том, как можно вставлять пользовательские ядра с помощью пакета kdensity,однако, мне все еще неясно, как это на самом деле работает.
Вот ссылка на учебник: (https://cran.r -project.org / web / packages / kdensity / vignettes / tutorial.html).
Я хотел бы использовать собственное ядро 0.5e ^ (- | x |) с имитированными случайными нормальными данными (x = rnorm (100,6,2)).для построения оценок ядра. Затем оттуда измените полосу пропускания, чтобы увидеть, как это влияет на график.
Исходя из учебника, он приводит пример ядра Гаусса и кодирует его следующим образом:
gaussian = list(
kernel = function(y, x, h) dnorm((y-x)/h),
sd = 1,
support = c(-Inf, Inf))
Где x - это данные, y - точка, которую вы хотите оценить, а h - полоса пропускания.
Поэтому, основываясь на этом, я создал это:
k1=list(
kernel=function(y,x,h){
inside=(y-x)/h
0.5*exp(-1*abs(inside))
},
suport=c(-Inf,Inf)
)
ТогдаЯ запустил его в пакете kdensity и получил эту ошибку:
kde=kdensity(N,kernel = "k1",bw=0.5)
Error: The supplied kernel ('k1') is not implemented.
Что-то явно не так, я не уверен, как это исправить.
Любая помощь приветствуется!