Почему я получаю эту ошибку с помощью функции R gsynth? - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь создать синтетические c элементы управления с помощью функции gsynth. У меня есть результат (Y), с бинарным назначением лечения (D), без ковариат, а затем номер «id» для каждой уникальной группы и затем «время» в диапазоне от 1 до 11 периодов времени. Однако всякий раз, когда я запускаю его, я получаю эту ошибку. Может ли кто-нибудь помочь?

out <- gsynth(Y ~ D, data = data6, index = c("id","time"), force = "two-way", 
   CV = FALSE, r = c(0,5), se = TRUE, inference = "parametric", nboots = 1000, min.T0 = 6)

Параллельные вычисления ... Начальная загрузка ... ... Ошибка в rownames<- (*tmp*, значение = iname [which (out $ tr == 1)])): попытка установить 'имена строк' для объекта без измерений

1 Ответ

2 голосов
/ 07 апреля 2020

У меня была такая же проблема. Причиной этой ошибки является то, что «лучшим» решением является r * = 0, поэтому оптимальное количество факторов равно нулю. Поэтому результат пустой. Хотя я на самом деле не знаю, что вызывает эту проблему, есть простой способ ее решить:

В функции gsynth не устанавливайте r в r = c (0, 5), а вместо этого установите r = c (1, 5). Это заставляет функцию gsynth игнорировать безфакторное решение, и результат никогда не может быть пустым.

Я знаю, что это, вероятно, не решает "более глубокую" проблему, которая вызывает ошибку, но по крайней мере это способ по крайней мере получить результат от функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...