Как написать линейную регрессию с расширяющимся окном в R (без пакетов) - PullRequest
0 голосов
/ 23 февраля 2020

Как настроить линейную регрессию с расширяющимся окном в R без использования пакетов?

Каков наилучший способ установить значение для l oop, чтобы сначала выполнить регрессию с 30 дней данных, затем 31 день, затем 32 и т. д. c?

1 Ответ

1 голос
/ 23 февраля 2020

Если все, что вам нужно, это пример того, как настроить расширяющееся окно, вот один из них. Он циклично (lapply) от start до длины вектора x, регрессор подгоняет линейную модель к первым i точкам данных.

start <- 30
res <- lapply(start:n, function(i){
  k <- seq.int(i)
  fit <- lm(y[k] ~ x[k])
  c(days = i, coef(fit))
})
res <- do.call(rbind, res)

op <- par(mfrow = c(1, 2))
plot(res[,1], res[,2], xlab = "window size", ylab = "Intercept", pch = 16)
plot(res[,1], res[,3], xlab = "window size", ylab = "beta", pch = 16)
par(op)

Код создания данных .

set.seed(1234)

n <- 100
x <- jitter(seq.int(n))
y <- x + rnorm(n)
...