Если все, что вам нужно, это пример того, как настроить расширяющееся окно, вот один из них. Он циклично (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)