Я смотрю на соотношение между днем года, когда 5 видов птиц начали линять перья и количество дней, в течение которых эти 5 видов были заняты, чтобы завершить линьку их перьев.Вычислить коэффициент корреляции при загрузке
Я попытался смоделировать свои данные в коде ниже. Для каждого из 5 видов у меня начальный день для 10 особей и продолжительность 10 человек. Для каждого вида я рассчитал средний начальный день и среднюю продолжительность, а затем рассчитал корреляцию между этими 5 видами.
Что я хочу сделать, это загрузить исходную дату и начальную загрузку средней продолжительности для каждого вида. Я хочу повторить это 10000 раз и вычислить коэффициент корреляции после каждого повторения. Затем я хочу извлечь кванты 0.025, 0.5 и 0.975 из 10000 коэффициентов корреляции.
Я дошел до симулирования необработанных данных, но мой код быстро стал беспорядочным, как только я попытался выполнить загрузку. Кто-нибудь может мне с этим помочь?
# speciesXX_start_day is the day of the year that 10 individuals of birds started moulting their feathers
# speciesXX_duration is the number of days that each individuals bird took to complete the moulting of its feathers
species1_start_day <- as.integer(rnorm(10, 10, 2))
species1_duration <- as.integer(rnorm(10, 100, 2))
species2_start_day <- as.integer(rnorm(10, 20, 2))
species2_duration <- as.integer(rnorm(10, 101, 2))
species3_start_day <- as.integer(rnorm(10, 30, 2))
species3_duration <- as.integer(rnorm(10, 102, 2))
species4_start_day <- as.integer(rnorm(10, 40, 2))
species4_duration <- as.integer(rnorm(10, 103, 2))
species5_start_day <- as.integer(rnorm(10, 50, 2))
species5_duration <- as.integer(rnorm(10, 104, 2))
start_dates <- list(species1_start_day, species2_start_day, species3_start_day, species4_start_day, species5_start_day)
start_duration <- list(species1_duration, species2_duration, species3_duration, species4_duration, species5_duration)
library(plyr)
# mean start date for each of the 5 species
starts_mean <- laply(start_dates, mean)
# mean duration for each of the 5 species
durations_mean <- laply(start_duration, mean)
# correlation between start date and duration
cor(starts_mean, durations_mean)
Большое спасибо за код, это действительно полезно. Мне интересно, как бы я сделал то же самое с пакетом 'boot'? – luciano
@luciano Я никогда раньше не использовал этот пакет, но здесь есть хороший учебник/пример: http://www.statmethods.net/advstats/bootstrapping.html. В основном вы должны определить свою функцию вычисления корреляции и передать свои данные через boot(). Концептуально говоря, это в основном тот же процесс. –