R: как получить оценки удельной плотности

# The Old Faithful geyser data
d <- density(faithful$eruptions, bw = "sj")
> head(d$x)
[1] 1.179869 1.188363 1.196857 1.205350 1.213844 1.222338

Я использую функцию density в {stats}, и мне интересно, можно ли увидеть плотность при определенных значениях на выходе? Например, в настоящее время у меня есть оценки плотности при значениях извержения [1] 1.179869 1.188363 ..., но что, если я хочу узнать оценки плотности при значениях извержения 1 2 5 10 ...? Есть ли способ извлечь эти объекты density, d?


person Adrian    schedule 03.08.2017    source источник
comment
возможно, вам придется использовать interp для компонентов x и y возвращаемого объекта...   -  person Ben Bolker    schedule 03.08.2017
comment
вы ищете что-то вроде этого: x <- 2; approx(d$x,d$y,xout = x)?   -  person AK88    schedule 03.08.2017
comment
Если вы имеете в виду, что хотите извлечь значения x в заданном месте в наборе данных, вы можете просто использовать d$x[3] для третьего значения. или d$y[5] для пятого результата местоположения y, вы можете извлечь любое значение таким образом.   -  person sconfluentus    schedule 03.08.2017
comment
@AK88, да, что-то в этом роде. Знаете ли вы, насколько линейная интерполяция будет отличаться от фактической оценки плотности, предоставленной функцией?   -  person Adrian    schedule 03.08.2017
comment
к сожалению понятия не имею...   -  person AK88    schedule 03.08.2017
comment
Я думаю, что approx будет в порядке. Даже в документации stats::density упоминается, что они будут использовать approx, если вы запросите вычисление плотности более чем в 512 точках.   -  person AEF    schedule 03.08.2017


Ответы (1)


Если я вас правильно понял, вам нужны вероятности, при которых значение x равно некоторому числу (3 или 4, как в моем решении)?

d <- density(faithful$eruptions, bw = "sj")
densityDF <- data.frame(xVals = d$x, prob = d$y)
densityDF$xVals <- round(densityDF$xVals)

densitySearch <- densityDF[densityDF$xVals %in% c(3,4),]

Результат:

   xVals       prob
157     3 0.11229482
158     3 0.10721410
159     3 0.10230912
160     3 0.09765156
161     3 0.09318662
162     3 0.08891621
person DataTx    schedule 13.09.2017