2014-10-02 3 views
1

Когда я рисую плотность для направления ветра с помощью пакета circular, я получаю сообщение об ошибке. Ошибка показана ниже. Может ли кто-нибудь объяснить требуемую пропускную способность (bw) для объема данных?Пропускная способность при построении плотностей в R

plot(density(dirCir)) 
Error in density.circular(dirCir) : 
    argument "bw" is missing, with no default 

Это фактический код, который у меня есть.

library (circular) 
dir <-c(308,351,330,16,3,346,345,345,287,359,345,358,336,335,346,16,325,354,5,354,322,340,6,278,354,343,261,353,288,8) 
dirCir <- circular(dir, units ="degrees", template = "geographics") 
mean(dirCir) 
var(dirCir) 
summary(dirCir) 
plot(dirCir) 
plot(density(dirCir)) 
rose.diag(dirCir, main = 'dir Data') 
points(dirCir) 

ответ

1

Как @ eipi10 говорит, bw должен быть явно выбран. В зависимости от ядра, которое вы выбираете, большие и малые значения этого параметра полосы пропускания могут давать плохие оценки плотности, а также очень гладкие.

Общая практика заключается в том, чтобы попробовать несколько значений и выбрать тот, который лучше всего описывает данные. Тем не менее, обратите внимание, что следующие функции обеспечивают более объективные способы выбора bw:

# bw.cv.mse.circular(dirCir) 
[1] 21.32236 
# bw.cv.mse.circular(dirCir, kernel = "wrappednormal") 
[1] 16.97266 
# bw.cv.ml.circular(dirCir) 
[1] 19.71197 
# bw.cv.ml.circular(dirCir, kernel = "wrappednormal") 
[1] 0.2280636 
# bw.nrd.circular(dirCir) 
[1] 14.63382 
+0

Юлия, основанный на несколько примеров, которые я только что попробовал, если вы запустите' density' на круглом объекте и используйте 'bw' порядка 1 или более, вы получите почти не структуру распределения плотности. Просто гладкий эллипс или даже круг, не показывающий изменения плотности вообще. С другой стороны, если вы запускаете «плотность» на одни и те же данные перед преобразованием в круглый объект, то ширина полосы пропускания, предлагаемая функциями в вашем примере, имеет смысл. Я раньше не использовал пакет «круговой», но, похоже, пропускная способность работает по-разному для круговых объектов. – eipi10

+0

Спасибо @Julius. Я просто новичок в Р. Почему вопрос отрицательно проголосовали? Люди здесь принимают слишком часто. – Gunnerfan

+0

@Gunnerfan, я не ответил на ваш вопрос, но для этого может быть несколько причин, в том числе тот, который вы упомянули. Ваш код был немного плохо отформатирован, но я исправил его, и я не думаю, что это была причина; не совсем понятно, спрашиваете ли вы об ошибке или о значении параметра 'bw'; вопрос о значении будет более подходящим для stats.stackexchange, тогда как очень простая идея и примеры использования приведены в '. density.circular'. – Julius

1

При запуске density на объект класса circular, кажется, что вы должны включать в себя значение для bw (пропускной способности) в явном виде (как сообщение об ошибке указывает). Попробуйте следующее:

plot(density(dirCir, kernel="wrappednormal", bw=0.02), ylim=c(-1,5)) 

График показан ниже. Диапазон ylim таков, что участок находится внутри области участка без обрезки. См. Справку для density.circular для получения дополнительной информации о запуске функции density на объектах circular. enter image description here

+0

Спасибо '@ eipi10', хорошо оценило – Gunnerfan

Смежные вопросы