Отставание в данных панели мультииндексных временных рядов по R

Для тех, кто все еще борется с этой проблемой, размещение этого кода в вашей работе onResume будет решить его:

textEntry.setSelection(textEntry.getText().length(), textEntry.getText().length());
0
задан Rob 1 March 2019 в 14:43
поделиться

2 ответа

Вот решение с использованием пакета dplyr, вы можете заметить, что в приведенном ниже коде я явно ссылаюсь на функцию отставания от dplyr, а не на базу R (stats). Это связано с тем, что функция запаздывания от dplyr не требует ввода временных рядов.

Я также хотел бы отметить, что две формулы, которые вы перечислите, могут давать разные результаты регрессии, так как вы будете использовать их для разных наборов данных, т.е.

Value1 (k, t + 1) ~ Value2 (k, t): запуск в период с 1-01-2012 по 1-03-2012

Value1 (k, t) ~ Value2 (k, t-1): запуск в период с 1-02-2012 по 1-04-2012

library("tidyverse")

df <- data.frame(User = c(rep("A", 4), rep("B", 4)),
             Date = rep(seq.Date(as.Date("2012-01-01"), as.Date("2012-01-04"), by = "day"), 2),
             Value1 = c(4, 5, 6, 7, 2, 3, 4, 5),
             Value2 = c(3, 7, 1, 4, 4, 2, 9, 3))

df2 <- df %>% arrange(User,Date) %>%
  group_by(User) %>%
  mutate(lag_v2 = dplyr::lag(Value2), 
         lead_v1 = dplyr::lead(Value1))



df3<-df2[!is.na(df2$lag_v2),]
df4<-df2[!is.na(df2$lead_v1),]

summary(lm(Value1~lag_v2,data=df3))
summary(lm(lead_v1~Value2,data=df4))
0
ответ дан M.Bergen 1 March 2019 в 14:43
поделиться

Для каждого пользователя вы можете сделать:

> df <- data.frame(User = c(rep("A", 4), rep("B", 4)),
+                  Date = rep(seq.Date(as.Date("2012-01-01"), as.Date("2012-01-04"), by = "day"), 2),
+                  Value1 = c(4, 5, 6, 7, 2, 3, 4, 5),
+                  Value2 = c(3, 7, 1, 4, 4, 2, 9, 3))
>   
> df_A <- df[df$User == "A", c("Value1", "Value2")]
> ts_A <- ts(df_A, start = c(2012, 1, 1), frequency = 365)
> ts_A <- ts.intersect(ts_A, lag(ts_A, -1))
> colnames(ts_A) <- c("Value1", "Value2", "Value1_t_1", "Value2_t_1")
> 
> lm(Value1 ~ Value2_t_1, ts_A)

Call:
lm(formula = Value1 ~ Value2_t_1, data = ts_A)

Coefficients:
(Intercept)   Value2_t_1  
     6.3929      -0.1071  

> 

Надеюсь, это поможет.

0
ответ дан Santiago Capobianco 1 March 2019 в 14:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: