Erros в PMG регрессии - PullRequest
0 голосов
/ 11 мая 2018

У меня есть следующий вид набора данных панели.

> head(fund_panel)
      month  months           fund_name                     return ex_mkt_ret id
    1     1 01-1998 27four Shari'ah Active Eq. Prescient A1     NA   -0.21268  1
    2     2 02-1998 27four Shari'ah Active Eq. Prescient A1     NA    0.06325  1
    3     3 03-1998 27four Shari'ah Active Eq. Prescient A1     NA   -0.04369  1
    4     4 04-1998 27four Shari'ah Active Eq. Prescient A1     NA   -0.02485  1
    5     5 05-1998 27four Shari'ah Active Eq. Prescient A1     NA   -0.11840  1
    6     6 06-1998 27four Shari'ah Active Eq. Prescient A1     NA   -0.34746  1

R показывает ошибку для следующей регрессии Фама-Макбета с использованием пакета plm и его функции pmg:

> fpmg <- pmg(return ~ ex_mkt_ret, fund_panel, index=c("month", "id")) ##Fama-MacBeth
Error in pdim.default(index[[1]], index[[2]]) : 
  duplicate couples (id-time)
In addition: Warning messages:
1: In pdata.frame(data, index) :
  duplicate couples (id-time) in resulting pdata.frame
 to find out which, use e.g. table(index(your_pdataframe), useNA = "ifany")
2: In is.pbalanced.default(index[[1]], index[[2]]) :
  duplicate couples (id-time)

Я наткнулся на Интернет, чтобы преодолеть проблемуно я не могу понять.Пожалуйста, ваши предложения.

1 Ответ

0 голосов
/ 10 июля 2018

Данное сообщение об ошибке должно быть совершенно очевидным: duplicate couples (id-time)

Это означает, что в вашем наборе данных есть строки, которые указывают один и тот же период времени (как минимум) дважды для одного и того же человека (скажем, наблюдение для человека 1 в 2016, 2017, 2018, 2018 годах).

Однако, глядя на ваш набор данных и на то, как вы указали индекс для команды оценки (см. ?pmg), кажется, что вы хотите иметь столбец id в качестве отдельного индекса и month в качестве указатель времени. Аргумент от index до pmg принимает индивидуальный индекс в первой позиции и индекс времени во второй позиции. Таким образом, переключение id и time должно работать:

fpmg <- pmg(return ~ ex_mkt_ret, fund_panel, index=c("id", "month"))

...