У меня есть ковариационная функция типа двух лагов: h1 и h2. Я пытаюсь избежать циклов для создания матрицы ковариационной функции.
Когда я набираю cov1, это не дает мне матрицы. Просто вектор, если я наберу, например, covmatrix(h1=1:5,h2=1:5)
. Как я могу получить, например, всю матрицу 5 на 5?
Я попробовал все функции применения и новую функцию векторизации (с нижним регистром v)
R код:
x=arima.sim(n = 100 , list(ar = .5))
cov=function(h1,h2){
(1/n)*sum((x[1:(n-h1-h2)]-mean(x))*(x[(1+h1):(n-h2)]-mean(x))*(x[(1+h1+h2):n]-mean(x)))
}
covmatrix=Vectorize(cov)