stackoverflow.com/questions/46395927/...

я есть такой набор данных:

 set.seed(242)
 df<- data.frame(month=order(seq(1,20,1),decreasing=TRUE), 
 psit=sample(1:100,20,replace=TRUE),  var=sample(1:10,20, 
 replace=TRUE))

Я хочу сделать грубый анализ временной задержки, чтобы увидеть, как отстаетvar данные влияютpsit данные. Задержка, как определено в этом грубом анализе,var данные Т-1, Т-2, Т-3 и др. месяцев в прошлом от каждогоpsit точка данных.

Чтобы увидеть, как предыдущие месяцыvar данные влияютpsit данные, я хочу сделатьtimelag вектор, который состоит изvar данные, которые смещены на один месяц отpsit переменная. Тогда я свяжуtimelag вектор кpsit вектор. Вот примеры структур данных для смещения на 1 месяц, смещения на 2 месяца, смещения на 3 месяца, соответственно:

 set.seed(242)
 timelag1<- cbind(df[1:12,2], df[2:13,3]) #1 month time lag
 timelag2<- cbind(df[1:12,2], df[3:14,3]) #2 month time lag
 timelag3<- cbind(df[1:12,2], df[4:15,3]) #3 month time lag

Для каждого кадра данных я хочу регрессироватьvar противpsit данные с использованиемlm() Функция и выводит значение R-квадрата. Этот процесс будет повторяться для каждого последующего смещения. Пример ниже:

 model1<-lm(timelag1)
 summary(model1)$r.squared
 model2<-lm(timelag2)
 summary(model2)$r.squared
 model3<-lm(timelag3)
 summary(model3)$r.squared

Я хотел бы создать цикл, который повторяет этот процесс для большого набора данных из 240 месяцев. Затем запускаетlm() на каждом кадре данных, а затем выведите значение r в квадрате.

Ответы на вопрос(1)

Ваш ответ на вопрос