2016-08-04 3 views
0

Ну, чтобы держать вещи коротким, что я хочу достичь, это сюжет, как право одного:участка с ядрами над отдельными наблюдениями в R

enter image description here

Я хотел бы получить стандарт График KDE с отдельными ядрами, построенный по наблюдениям.

Лучшим решением будет тот, который рассматривает все различные функции ядра (например, прямоугольные, треугольные и т. Д.).

+0

Что делает ядро ​​над каждым наблюдением представляет? Какой-то показатель неопределенности? – mkt

+1

Результат ядра - функция плотности вероятности (красные линии). KDE фактически состоит из «суммирования» этих ядер. Возможно, это [ссылка] (https://www.r-bloggers.com/exploratory-data-analysis-kernel-density-estimation-in-r-on-ozone-pollution-data-in-new-york-and -ozonopolis) помогает с пониманием – Deset

+0

Ваш намек помог мне рассчитать единичные ядра, поэтому последнее, что я пропустил, - это привести два графика к одному масштабу, чтобы он мог по праву быть нанесен на один и тот же рисунок. Какие-нибудь идеи в отношении этого? – Deset

ответ

0

Ну после прочтения этого Answer Мне удалось найти решение.

# Create some input data 
x<-c(19, 20, 10, 17, 16, 13, 16, 10, 7, 18) 


# Calculate the KDE 
kde<-density(x,kernel="gaussian",bw=bw.SJ(x)*0.2) 

# Calcualte the singel kernels/pdf's making up the KDE of all observations 
A.kernel<-sapply(x, function(i) {density(i,kernel="gaussian",bw=kde$bw)},simplify=F) 
sapply(1:length(A.kernel), function(i){A.kernel[[i]][['y']]<<-(A.kernel[[i]][['y']])/length(x)},simplify=F) 


# Plot everything together ensuring the right scale (the area of the single kernels is corrected) 
plot(kde) 
rug(x,col=2,lwd=2.5) 
sapply(A.kernel, function(i){ 
     lines(i,col="red")} 
     ) 

Результат выглядит следующим образом: enter image description here