Кажущаяся несвязанной ошибка регрессии при использовании Systemfit в R

Я хотел бы использовать, по-видимому, несвязанные регрессии для неоднократной оценки одного уравнения по сечениям, но всегда получаю ошибку "Ошибка в LU.dgC(a): сбой cs_lu(A): почти единичный A (или нехватка памяти)" ".

Причина в моих данных / настройках, где каждое уравнение оценивает разницу между двумя поперечными сечениями (см. Пример ниже).

Воспроизводимый пример, чтобы прояснить это: стандарт SUR работает (1), затем я моделирую свою настройку, которая сводится к подходу diff-in-diff (2), на котором оценка уравнений работает отдельно (3), но совместно используя SUR (4) дает мне ошибку.

Есть идеи, как это решить? Или о других простых в реализации способах оценить это одновременно?

1. SUR - Стандартная настройка ==> Нет ошибок

            library ("systemfit")
            library( "plm" )
            library("broom")
            library("data.table")

data( "GrunfeldGreene" )

GGPanel <- pdata.frame( GrunfeldGreene, c( "firm", "year" ) )
formulaGrunfeld <- invest ~ value + capital
greeneSur <- systemfit( formulaGrunfeld, "SUR",data = GGPanel,methodResidCov = "noDfCor" )
summary(greeneSur)

2. Адаптация набора данных к моим настройкам

data( "GrunfeldGreene" )

setDT(GrunfeldGreene)
GrunfeldGreene[, dummy_time := ifelse(year>1945, 1, 0),]
GrunfeldGreene[, dummy_group := ifelse(firm=="General Motors"|firm=="Chrysler", 1, 0),]
GrunfeldGreene <- subset(GrunfeldGreene, firm!="US Steel")

GrunfeldGreene[, id := ifelse(firm=="General Motors" | firm=="General Electric", 1, 0),]
GrunfeldGreene[, id := ifelse(firm=="Chrysler" | firm=="Westinghouse", 2, id),]

GGPanel <- pdata.frame( GrunfeldGreene, c( "id", "year" ) )

3. Отдельные уравнения на моей настройке ==> Нет ошибок

GGPanel_id1 <- subset(GGPanel, id==1)
reg <- lm(invest ~ value + capital + dummy_time + dummy_group + dummy_time*dummy_group, data=GGPanel_id1)
summary(reg)

GGPanel_id2 <- subset(GGPanel, id==2)
reg <- lm(invest ~ value + capital + dummy_time + dummy_group + dummy_time*dummy_group, data=GGPanel_id2)
summary(reg)

4. SUR на моей настройке ==> Ошибка

GGPanel <- pdata.frame( GrunfeldGreene, c( "id", "year" ) )
formulaGrunfeld <- invest ~ value + capital + dummy_time + dummy_group + dummy_time*dummy_group
greeneSur2 <- systemfit( formulaGrunfeld, "SUR",data = GGPanel, methodResidCov = "noDfCor" )
summary( greeneSur2 )

0 ответов

Другие вопросы по тегам