Круговое распределение плотности данных
Я пытаюсь определить, в какой момент в течение года наблюдалось 80% наблюдений за размножением птиц. Как правило, я отвечал бы на такой вопрос, находя медиану или квартили, но как мне справиться с ситуациями, когда 80% наблюдений относятся к 285–366-м дням (високосный год) и распространяются на 30-й день?
Данные являются круглыми, и день 365 близок к дню 366 так же, как и день 1.
Я читаю руководство для CircStats и циркуляр, но я действительно мог бы помочь с этим.
Мои вопросы: какое самое короткое количество дней составляет 50% наблюдений и каковы начальный и конечный день этого периода?
Вот некоторые фиктивные данные:
library(CircStats)
#dummy data
obsDay<-c(rep(1:30,10),rep(45:65,2),65:180,
rep(181:265,2),rep(266:330,4),rep(331:366,6))
#density plot
plot(density(obsDay))
#convert data to Radians
obsRadians <-(obsDay/366*360)*3.1459 / 180
#make a circular plot
circ.plot(obsRadians, stack=TRUE, bins=100,shrink=1.8)
1 ответ
Я разобрался с решением. С фиктивными данными дни, когда 80% данных являются наиболее плотными, находятся между 6 октября и 23 июля.
library(circular)
library(CircStats)
obsDay<-c(rep(1:30,10),rep(45:65,2),65:180,rep(181:265,2),rep(266:330,4),rep(331:366,6))
#density plot
plot(density(obsDay))
#convert data to Radians
obsRadians <-(obsDay/366*360)*pi / 180
#make a circular plot
circ.plot(obsRadians, stack=TRUE, bins=100,shrink=1.8)
quant<-quantile.circular(obsRadians,c(0.10,.90)) ## for interval of 80% of obs
start<-(quant[[1]]*180/pi)/360*366 #convert radians to days - Aug 27
end<-(quant[[2]]*180/pi)/360*366 # March1