Я пытаюсь выяснить, как R вычисляет автокорреляцию lag-k (очевидно, это та же формула, что используется Minitab и SAS), так что я могу сравнить ее с использованием функции CORREL в Excel, примененной к серии, и ее версии с k-lagged. R и Excel (используя CORREL) дают немного разные значения автокорреляции.
Мне также было бы интересно узнать, является ли одно вычисление более правильным, чем другое.
r
sas
autocorrelation
excel
Галит Шмуэли
источник
источник
R
Формула далее анализируется и объясняется по адресу stats.stackexchange.com/questions/81754/… .Ответы:
Точное уравнение дано в: Venables, WN и Ripley, BD (2002) Современная прикладная статистика с S. Четвертое издание. Springer-Verlag. Я приведу вам пример:
И так далее (например,
res[1:47]
иres[4:50]
для отставания 3).источник
Наивный способ вычислить автокорреляцию (и, возможно, то, что использует Excel) состоит в том, чтобы создать 2 копии вектора, а затем удалить первые 1 n элементов из первой копии и последние n элементов из второй копии (где n - это задержка, которую вы вычисления от). Затем передайте эти 2 вектора в функцию для вычисления корреляции. Этот метод в порядке и даст разумный ответ, но он игнорирует тот факт, что сравниваемые 2 вектора действительно являются мерами одного и того же.
Улучшенная версия (как показывает Вольфганг) представляет собой функцию, аналогичную обычной корреляции, за исключением того, что она использует весь вектор для вычисления среднего значения и дисперсии.
источник