Почему Excel подходит для теста Филипса-Перрона и когда его лучше не использовать
Тест Филипса-Перрона (Phillips-Perron test) — это статистический инструмент для проверки гипотезы о наличии единичного корня в временных рядах, альтернатива классическому тесту Дики-Фуллера. Хотя для профессиональной эконометрики чаще применяют R, Stata или EViews, Excel остаётся доступным решением для быстрого анализа небольших выборок (до 1000 наблюдений). Главное преимущество — визуализация промежуточных расчётов и возможность ручной корректировки параметров.
Однако у метода есть ограничения. Excel не поддерживает автоматическое определение лагов для коррекции автокорреляции (в отличие от специализированного ПО), поэтому лаги приходится подбирать вручную по критерию Неймана-Пирсона или визуально по ACF/PACF-графикам. Кроме того, в Excel отсутствуют встроенные функции для теста Филипса-Перрона — все вычисления выполняются через комбинацию ЛИНЕЙН(), СТЬЮДРАСПОБР() и ручного ввода критических значений. Это повышает риск ошибок при обработке больших массивов данных.
Когда стоит отказаться от Excel в пользу альтернатив:
- 📊 Ваш временной ряд превышает 5000 наблюдений (риск переполнения ячеек при матричных вычислениях).
- 🔄 Требуется автоматическая коррекция гетероскедастичности (в Excel это реализуется только через дополнительные надстройки).
- 📈 Нужны расширенные тесты (например, ADF-GLS или KPSS), которые в принципе не реализуемы в стандартном функционале Excel.
Подготовка данных: как привести временной ряд к нужному формату
Первый шаг — очистка и структурирование исходных данных. Тест Филипса-Перрона чувствителен к пропущенным значениям и выбросам, поэтому:
- Удалите пустые ячейки или замените их на
СРЗНАЧ()по соседним значениям (если пропусков не более 5%). - Прологарифмируйте ряд, если дисперсия растёт со временем (признак гетероскедастичности). Используйте формулу
=ЛН(значение). - Приведите данные к стационарному виду путём взятия первых разностей (
=B2-B1) или сезонных разностей (для квартальных/месячных данных).
Особое внимание уделите датам. Excel должен воспринимать их как последовательный временной ряд, а не как текст. Проверьте формат ячеек: выделите столбец с датами → Формат ячеек → Дата. Если даты хранятся как текст (например, "2023Q1"), преобразуйте их в числовой формат с помощью функции ДАТАЗНАЧ() или ДАТА().
Исключены пропущенные значения|Данные приведены к логарифмам (если нужно)|Взяты первые разности для нестационарных рядов|Дата отформатирована как последовательный временной ряд|Удалены выбросы (например, через правило 3σ)
-->
Пример структуры таблицы для анализа:
| Дата | Значение ряда (Y) | Первые разности (ΔY) | Логарифм (lnY) |
|---|---|---|---|
| 01.01.2020 | 150 | — | 5.01 |
| 01.02.2020 | 162 | 12 | 5.09 |
| 01.03.2020 | 148 | -14 | 4.99 |
| 01.04.2020 | 175 | 27 | 5.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: Коррекция дисперсии ошибок
Тест Филипса-Перрона требует поправки на автокорреляцию остатков. Для этого:
- Получите остатки регрессии
εₜкак разницу между фактическими и предсказаннымиΔyₜ. - Рассчитайте длинную автокорреляцию (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: Надстройка "Анализ данных" (встроенная)
Хотя в стандартном "Пакете анализа" нет теста Филипса-Перрона, вы можете:
- Использовать инструмент
Регрессиядля оценки вспомогательного уравнения. - Добавить столбец с остатками и рассчитать их автокорреляцию через
КОРРЕЛ(). - Вручную применить формулы поправки Филипса-Перрона (см. раздел 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₀ → ряд стационарен).
В этом случае стоит:
- Проверить ряд на наличие структурных разрывов.
- Применить тест DF-GLS (если доступен).
- Использовать визуальный анализ ACF/PACF.
Типичные ошибки и как их избежать
Даже опытные аналитики допускают ошибки при реализации теста Филипса-Перрона в Excel. Вот самые распространённые:
Ошибка 1: Неправильный выбор детерминированных компонентов
Если в данных есть тренд, но вы тестируете модель только с константой, статистика теста будет занижена. Как проверить:
- 📈 Постройте график ряда. Если виден явный рост/падение → добавьте тренд (
t). - 📊 Используйте тест на значимость тренда: если коэффициент при
tзначим (p-value < 0.05), включайте его в модель.
Ошибка 2: Игнорирование автокорреляции остатков
Тест Филипса-Перрона предполагает, что вы скорректировали дисперсию ошибок. Если этого не сделать, статистика будет смещена. Как исправить:
- Постройте ACF-график остатков (через
Пакет анализа → Автокорреляция). - Если автокорреляция значима на лагах >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 это делается через:
- Взятие сезонных разностей (например, для квартальных данных:
=B5-B1). - Использование функции
СРЗНАЧпо одноимённым периодам (например, среднее по всем январям). - Применение надстройки XLSTAT для сезонной декомпозиции.
После десезонализации повторите тест Филипса-Перрона.
Где взять критические значения для теста?
Критические значения зависят от спецификации модели (с константой/трендом) и размера выборки. Источники:
- Таблицы МакКиннона (1996) — стандарт для большинства эконометрических пакетов.
- Надстройка Real Statistics включает приближённые значения.
- Онлайн-калькуляторы (например, на сайте Stat Trek).
Пример для модели с константой и N=100: критическое значение на уровне 5% ≈ -3.45.