Сравнение моделей Panel после кластеризации SE R - PullRequest
0 голосов
/ 27 февраля 2019

Я анализирую модели FE, RE и Pooled Ols для данных панели (кантоны = 26, T = 6, N = 156, сбалансированный набор).Все мои переменные в процентах.

Y = employment rate of canton refugees x1 = percentage share of jobs in small Businesses x2 = percentage share of jobs in large Businesses Controls = % share of foreigners, cantonal GDP as a percentage to the country GDP, unemployment rate of natives

Я хочу скорректировать свои регрессионные модели для кластеризованной SE по группам (кантон = состояние), поскольку стандартные ошибки становятся заниженными при наличии последовательной корреляции, что делает проверку гипотез неоднозначной.

Поскольку существует только одно наблюдение на кантон и год, кластеризация по годам и кантонам невозможна.Результаты были сгруппированы по кантонам, потому что предполагается, что эти кластеры независимы друг от друга на основе автономной природы кантонов из-за федералистской природы страны.Предполагается, что годичные кластеры зависят друг от друга в связи с характером запаздывающих эффектов в экономических теориях / механизмах.

1) Нужно ли доказывать, что последовательная корреляция присутствует или можно предположить, что последовательная корреляция присутствует, потому что вполне вероятно, что наблюдения одного и того же кантона во времени коррелируют.Если необходимо проверять последовательную корреляцию перед кластеризацией SE, какой код использовать?

Вот мой код:

FE Модель: fixedm6 <- plm (Y ~ X + X1 + control, data = busdata, index = c ("canton", "year"),модель = "в пределах", эффект = 'twoways') </p>

FE Модель с кластеризацией SE:

cfixedm6 <- coeftest(fixedm6, vcov=vcovHC(fixedm6, method = "arellano", type="HC3",cluster="group"))

Модель пула OLS:

    m6pool <- plm(Y ~ X + X1 + X2, data=busdata, index=c("canton", "year"), model="pooling")

Группа пула OLS с кластеризациейSE:

    cm6pool <- coeftest(m6pool, vcov=vcovHC(m6pool, type="HC3", cluster="group"))

F-тест без кластеризованного SE:

    pFtest(fixedm6, m6pool)
    p-value < 2.2e-16 ----> FE is better fit

при вставке моделей с кластеризованным SE:

    pFtest(cfixedm6, cm6pool)
    Error in UseMethod("pFtest") :  no applicable method for 'pFtest' applied to an object of class "coeftest"

То же самое происходит с другими lmtestфункции (phtest для теста Хаусмана).Модель RE:

    randm6 <- plm(eY ~ X + X1 + X2,  index=c("canton", "year"), data=busdata, model="random")

Модель RE с кластерным SE:

    crandm6 <- coeftest(randm6, vcov=vcovHC(randm6, method = "white1", type="HC3", cluster="group"))

Без кластеризованного SE:

    phtest(fixedm6, randmo6)

с кластеризованным SE:

    phtest(cfixedm6, crandmo6)

Ошибка в UseMethod ("phtest"): нет применимого метода для "phtest", примененного к объекту класса "coeftest"

2) Должен ли я сначала сравнивать модели без кластеризованного SE, а затемна основе тестов Ftest / hausmann и т. д. найти лучшую модель и затем кластеризовать SE для этой модели?

Без кластеризации SE в моделях я могу легко использовать lmtest для сравнения значений моделей.Однако это кажется ложным, учитывая, что значения p будут искажены.Однако, как только я включил кластеризованный SE, я не знаю, как кодировать, чтобы сравнить и определить, какая модель лучше всего подходит.

Как мне подходить к этому в R?Большинство онлайн-ресурсов обсуждают FE / RE и т. Д., А затем обсуждают кластерные SE, но никогда не сравнивают модели с кластерными SE.Что я делаю неправильно?Какой код R будет лучше здесь?Я использую неправильные пакеты?

С наилучшими пожеланиями, Gil

...