У меня есть набор временных рядов с 2 столбцами: x - это «ежечасные» данные о непрерывной температуре, а y - периодически отбираемые данные ответа (периодические образцы, сделанные в 5 утра, 2 вечера, 8 вечера каждый день) в течение пары недель.Вперед во время rollapply
Я хотел бы сделать 2 лаг подходы к анализу данных
1) построить все мои данные у (постоянные) против более отсроченных х данных (данные сдвига х от 0-24 часов в 1 часы шагов), т.е. x при 6pm против y в 6 часов; x в 5 вечера по сравнению с y в 18:00 ...... x (5pm в предыдущий день) vs y (6pm)
2) То же, что и 1), но кумулятивные сдвиги, т.е. «назад по времени», суммарное отставание окна 0 : 24 с шагом 1 для данных x и протестировать его по данным y , т.е. x в 18:00 против y в 18:00; x at (avg 5pm & 18:00) vs y в 18:00 ...... x (среднее значение с 18:00 до 17:00 в предыдущий день) против y (6 вечера)
Я хочу построить линейную модель (lm) y "vs" сдвинуто x "для каждого сценария запаздывания (0 - 24) и составить таблицу со столбцом для числа лагов, p-значение lm; и Adj. R2 из lm), поэтому я могу видеть, какое отставание и суммарное среднее отставание в «x» лучше всего объясняют y-данные.
По существу это то же самое, что и функции «cummean» или «rollapply», но работают в обратном направлении, но я не мог найти что-либо в R, которое делает это. Перевертывание данных X не работает, так как порядок данных должен поддерживаться, так как мне нужно отставание для x в течение нескольких y's
Я бы предположил, что для цикла будет использоваться цикл 'for' для всех данных в каждый лаг с «я» является отставание
один проход с 0 лаг будет выглядеть следующим образом:
#Creating dummy data
x<- zoo(c(10,10.5,10.5,11,11.5,12,12.5,12,12,12.5,13,12.5,12,12,11.5,10.5), as.Date(1:16))
y<- zoo(c(rep("NA",3),40,rep("NA",3),45,rep("NA",3),50,rep("NA",3),40), as.Date(1:16))
z<-merge(x, y, all = FALSE)
z
reslt<-lm(z$y~z$x)
a<-summary(reslt)$coefficients[2,4]
b<-summary(reslt)$adj.r.squared
ResltTable<-c(a,b)
colnames(ResltTable)<-c("p-value","Adj. R^2")
Спасибо!