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 в квадрате.