Обработка теста Филипса-Перрона в Excel: от подготовки данных до анализа результатов

Почему Excel подходит для теста Филипса-Перрона и когда его лучше не использовать

Тест Филипса-Перрона (Phillips-Perron test) — это статистический инструмент для проверки гипотезы о наличии единичного корня в временных рядах, альтернатива классическому тесту Дики-Фуллера. Хотя для профессиональной эконометрики чаще применяют R, Stata или EViews, Excel остаётся доступным решением для быстрого анализа небольших выборок (до 1000 наблюдений). Главное преимущество — визуализация промежуточных расчётов и возможность ручной корректировки параметров.

Однако у метода есть ограничения. Excel не поддерживает автоматическое определение лагов для коррекции автокорреляции (в отличие от специализированного ПО), поэтому лаги приходится подбирать вручную по критерию Неймана-Пирсона или визуально по ACF/PACF-графикам. Кроме того, в Excel отсутствуют встроенные функции для теста Филипса-Перрона — все вычисления выполняются через комбинацию ЛИНЕЙН(), СТЬЮДРАСПОБР() и ручного ввода критических значений. Это повышает риск ошибок при обработке больших массивов данных.

Когда стоит отказаться от Excel в пользу альтернатив:

  • 📊 Ваш временной ряд превышает 5000 наблюдений (риск переполнения ячеек при матричных вычислениях).
  • 🔄 Требуется автоматическая коррекция гетероскедастичности (в Excel это реализуется только через дополнительные надстройки).
  • 📈 Нужны расширенные тесты (например, ADF-GLS или KPSS), которые в принципе не реализуемы в стандартном функционале Excel.
📊 Какой инструмент вы используете для теста Филипса-Перрона?
Excel
R/Stata
EViews
Python (statsmodels)
Другой

Подготовка данных: как привести временной ряд к нужному формату

Первый шаг — очистка и структурирование исходных данных. Тест Филипса-Перрона чувствителен к пропущенным значениям и выбросам, поэтому:

  1. Удалите пустые ячейки или замените их на СРЗНАЧ() по соседним значениям (если пропусков не более 5%).
  2. Прологарифмируйте ряд, если дисперсия растёт со временем (признак гетероскедастичности). Используйте формулу =ЛН(значение).
  3. Приведите данные к стационарному виду путём взятия первых разностей (=B2-B1) или сезонных разностей (для квартальных/месячных данных).

Особое внимание уделите датам. Excel должен воспринимать их как последовательный временной ряд, а не как текст. Проверьте формат ячеек: выделите столбец с датами → Формат ячеек → Дата. Если даты хранятся как текст (например, "2023Q1"), преобразуйте их в числовой формат с помощью функции ДАТАЗНАЧ() или ДАТА().

Исключены пропущенные значения|Данные приведены к логарифмам (если нужно)|Взяты первые разности для нестационарных рядов|Дата отформатирована как последовательный временной ряд|Удалены выбросы (например, через правило 3σ)

-->

Пример структуры таблицы для анализа:

ДатаЗначение ряда (Y)Первые разности (ΔY)Логарифм (lnY)
01.01.20201505.01
01.02.2020162125.09
01.03.2020148-144.99
01.04.2020175275.16
⚠️ Внимание: Если ваш ряд содержит сезонную составляющую (например, квартальные данные), перед тестом Филипса-Перрона обязательно примените сезонную коррекцию через СРЗНАЧ по одноимённым периодам или используйте специализированные надстройки типа XLSTAT.

Расчёт статистики Филипса-Перрона: формулы и последовательность действий

Тест Филипса-Перрона основан на регрессии вида:

Δyₜ = α + βyₜ₋₁ + γₜ + εₜ

где γₜ — детерминированные компоненты (константа, тренд), а εₜ — ошибка с возможной автокорреляцией. В Excel расчёт выполняется в 4 этапа:

Этап 1: Оценка вспомогательной регрессии

Создайте столбцы для:

  • 📌 yₜ₋₁ (значения ряда с лагом 1: =B2 в ячейке C3).
  • 📌 Δyₜ (первые разности: =B3-B2).
  • 📌 1 (столбец единиц для оценки константы).
  • 📌 t (номер наблюдения от 1 до N для оценки тренда).

Используйте функцию ЛИНЕЙН() для оценки коэффициентов регрессии Δyₜ на yₜ₋₁, константу и тренд (если нужны). Пример формулы для модели с константой и трендом:

=ЛИНЕЙН(D3:D100; C3:C100; ИСТИНА; ИСТИНА)

где D3:D100 — столбец Δyₜ, а C3:C100 — матрица регрессоров (yₜ₋₁, 1, t).

Этап 2: Коррекция дисперсии ошибок

Тест Филипса-Перрона требует поправки на автокорреляцию остатков. Для этого:

  1. Получите остатки регрессии εₜ как разницу между фактическими и предсказанными Δyₜ.
  2. Рассчитайте длинную автокорреляцию (long-run variance) по формуле:
=СУММПРОИЗВ(E3:E100; E3:E100) + 2*СУММПРОИЗВ(E3:E99; E4:E100)/(1-ЛАГ/E100))

где E3:E100 — столбец остатков, а ЛАГ — выбранное число лагов (обычно от 1 до 12 для квартальных данных).

Этап 3: Расчёт статистики Z(ρ) и Z(t)

Финальные статистики теста:

  • 📉 Z(ρ) = T*(β̂ - 1) - 0.5*σ²ε*Σ(yₜ₋₁²)/Σ(Δyₜ²)
  • 📉 Z(t) = (β̂ - 1)/SE(β̂) - 0.5*(σ²ε*Σ(yₜ₋₁²)/Σ(Δyₜ²))

где SE(β̂) — стандартная ошибка коэффициента β̂, а σ²ε — скорректированная дисперсия остатков.

⚠️ Внимание: Критические значения для статистик Филипса-Перрона отличаются от стандартных t-распределений! Их нужно брать из специализированных таблиц (например, таблицы МакКиннона, 1996) или надстроек. Для уровня значимости 5% критическое значение Z(t) ≈ -3.43 (без тренда) и -3.96 (с трендом).

Интерпретация результатов: когда ряд стационарен, а когда — нет

Правило принятия решения:

  • 🔍 Если Z(t) < критическое значение → отвергаем нулевую гипотезу о наличии единичного корня (ряд стационарен).
  • 🔍 Если Z(t) > критическое значение → нет оснований отвергнуть нулевую гипотезу (ряд нестационарен).

Пример интерпретации для модели с константой:

СтатистикаРассчитанное значениеКритическое значение (5%)Вывод
Z(t)-4.12-3.43Стационарен
Z(ρ)-18.5-14.1Стационарен

Типичные ошибки при интерпретации:

  • ❌ Игнорирование детерминированных компонентов (константы/тренда). Например, если в данных есть тренд, но вы тестируете модель без него, результат будет смещён в сторону неотвержения нулевой гипотезы.
  • ❌ Сравнение статистик с неверными критическими значениями (например, использование t-распределения вместо таблиц МакКиннона).
  • ❌ Пренебрежение визуальным анализом ряда. Всегда стройте график исходных данных и первых разностей — если ряд "гуляет" даже после дифференцирования, тест может дать ложный результат.
Что делать если результаты теста противоречивы?

Если Z(t) и Z(ρ) дают разные выводы, проверьте:

1. Корректность учёта лагов в длинной автокорреляции (попробуйте увеличить их число).

2. Наличие структурных разрывов в данных (например, финансовые кризисы). В этом случае примените тест Зивота-Эндрюса.

3. Альтернативные тесты (например, ADF или KPSS) для кросс-валидации.

Автоматизация теста Филипса-Перрона в Excel: макросы и надстройки

Ручной расчёт теста занимает 30-60 минут и чреват ошибками. Ускорить процесс помогут:

Способ 1: Надстройка "Анализ данных" (встроенная)

Хотя в стандартном "Пакете анализа" нет теста Филипса-Перрона, вы можете:

  1. Использовать инструмент Регрессия для оценки вспомогательного уравнения.
  2. Добавить столбец с остатками и рассчитать их автокорреляцию через КОРРЕЛ().
  3. Вручную применить формулы поправки Филипса-Перрона (см. раздел 3).

Способ 2: VBA-макрос для автоматического расчёта

Ниже приведён базовый код для оценки Z(t)-статистики (требует доработки под ваши данные):

Sub PhillipsPerronTest()

Dim ws As Worksheet

Set ws = ThisWorkbook.Sheets("Data")

Dim y() As Variant, dy() As Variant, lagY() As Variant

' Загрузка данных

y = ws.Range("B2:B100").Value

ReDim dy(1 To 99, 1 To 1)

ReDim lagY(1 To 99, 1 To 1)

For i = 2 To 100

dy(i-1, 1) = y(i, 1) - y(i-1, 1)

lagY(i-1, 1) = y(i-1, 1)

Next i

' Оценка регрессии (упрощённо)

Dim X() As Variant, beta() As Variant

ReDim X(1 To 99, 1 To 2)

For i = 1 To 99

X(i, 1) = lagY(i, 1)

X(i, 2) = 1 ' Константа

Next i

beta = Application.WorksheetFunction.LinEst(dy, X, True, True)

' Вывод коэффициента beta (для единичного корня)

ws.Range("D1").Value = "Коэффициент β: " & beta(1, 1)

' Дальше нужны расчёты длинной дисперсии и Z(t) — см. раздел 3

End Sub

Для полноценной автоматизации скачайте готовые надстройки:

  • 📥 Excel Econometrics Toolbox (платно, но с поддержкой тестов на единичные корни).
  • 📥 Real Statistics Resource Pack (бесплатно, включает тест ADF, который можно адаптировать).

Сравнение теста Филипса-Перрона с тестом Дики-Фуллера в Excel

Оба теста проверяют гипотезу о единичном корне, но используют разные подходы к коррекции автокорреляции:

КритерийТест Дики-Фуллера (ADF)Тест Филипса-Перрона (PP)
Коррекция автокорреляцииДобавляет лаги Δyₜ в регрессиюКорректирует дисперсию ошибок
Чувствительность к гетероскедастичностиВысокаяНизкая (за счёт непараметрической коррекции)
Сложность реализации в ExcelПроще (встроен в надстройки)Сложнее (требует ручных поправок)
Рекомендации по использованиюДля рядов с чёткой автокорреляциейДля рядов с неясной структурой ошибок

Практический совет: если результаты ADF и PP противоречат друг другу, доверяйте тесту Филипса-Перрона — он менее чувствителен к спецификации лагов.

Пример противоречия:

  • ADF: Z(t) = -2.8 (не отвергаем H₀ → ряд нестационарен).
  • PP: Z(t) = -4.2 (отвергаем H₀ → ряд стационарен).

В этом случае стоит:

  1. Проверить ряд на наличие структурных разрывов.
  2. Применить тест DF-GLS (если доступен).
  3. Использовать визуальный анализ ACF/PACF.

Типичные ошибки и как их избежать

Даже опытные аналитики допускают ошибки при реализации теста Филипса-Перрона в Excel. Вот самые распространённые:

Ошибка 1: Неправильный выбор детерминированных компонентов

Если в данных есть тренд, но вы тестируете модель только с константой, статистика теста будет занижена. Как проверить:

  • 📈 Постройте график ряда. Если виден явный рост/падение → добавьте тренд (t).
  • 📊 Используйте тест на значимость тренда: если коэффициент при t значим (p-value < 0.05), включайте его в модель.

Ошибка 2: Игнорирование автокорреляции остатков

Тест Филипса-Перрона предполагает, что вы скорректировали дисперсию ошибок. Если этого не сделать, статистика будет смещена. Как исправить:

  1. Постройте ACF-график остатков (через Пакет анализа → Автокорреляция).
  2. Если автокорреляция значима на лагах >1, увеличьте число лагов в формуле длинной дисперсии.

Ошибка 3: Неверная интерпретация p-value

В Excel нет встроенной функции для p-value теста Филипса-Перрона. Многие ошибочно используют СТЬЮДРАСПОБР(), но это неправильно! Критические значения нужно брать из специализированных таблиц:

Модель1%5%10%
Только константа-3.96-3.43-3.12
Константа + тренд-4.38-3.96-3.66

FAQ: Ответы на частые вопросы

Можно ли проводить тест Филипса-Перрона для панельных данных в Excel?

Нет, стандартный тест Филипса-Перрона предназначен только для индивидуальных временных рядов. Для панельных данных используйте тесты типа Levin-Lin-Chu или Im-Pesaran-Shin, которые реализуются в Stata/R. В Excel вы можете вручную применить тест к каждому кросс-сечению отдельно, но это не эквивалентно панельному анализу.

Какой минимальный размер выборки нужен для теста?

Теоретически тест работает при N > 30, но на практике для надёжных результатов рекомендуется не менее 100 наблюдений. Для выборок меньше 50 используйте тест Дики-Фуллера с поправкой на малые выборки (ADF-GLS).

Что делать, если в данных есть пропуски?

Если пропусков менее 5%, замените их на линейную интерполяцию (=ПРЕДСКАЗ()) или среднее по соседним значениям. Если пропусков больше — исключите период с пропусками или используйте методы вроде Kalman filtering (в Excel реализуется через надстройки).

Можно ли использовать тест для рядов с сезонностью?

Да, но предварительно нужно устранить сезонность. В Excel это делается через:

  1. Взятие сезонных разностей (например, для квартальных данных: =B5-B1).
  2. Использование функции СРЗНАЧ по одноимённым периодам (например, среднее по всем январям).
  3. Применение надстройки XLSTAT для сезонной декомпозиции.

После десезонализации повторите тест Филипса-Перрона.

Где взять критические значения для теста?

Критические значения зависят от спецификации модели (с константой/трендом) и размера выборки. Источники:

  • Таблицы МакКиннона (1996) — стандарт для большинства эконометрических пакетов.
  • Надстройка Real Statistics включает приближённые значения.
  • Онлайн-калькуляторы (например, на сайте Stat Trek).

Пример для модели с константой и N=100: критическое значение на уровне 5% ≈ -3.45.