Aquí la solución dependería de lo que quieras lograr. Ten en cuenta que el problema no es solo que la serie esté desequilibrada, ya que en un conjunto de datos de panel desequilibrado ordinario donde las empresas tienen un número diferente de observaciones $T$, el comando aún funcionaría. Aquí no se necesitan ajustes, puedes probarlo fácilmente tú mismo:
install.packages("plm")
library("plm")
data("EmplUK", package="plm")
result<-plm(formula = wage ~ emp, data = EmplUK, model = "within")
summary(result)
Lo cual te da esta salida:
Panel desequilibrado: n = 140, T = 7-9, N = 1031
Residuos: Min. 1st Qu. Mediana 3rd Qu. Máx. -12.13926 -1.21442 -0.20655 1.02437 17.11197
Coeficientes: Estimación Error Estándar Valor t Pr(>|t|) emp -0.119813 0.031103 -3.8521 0.0001255 ***
Por lo tanto, puedes usar datos desequilibrados sin necesidad de ajustes adicionales en el código de plm en sí. Creo que los autores se refieren a ajustes que deben hacerse al programar la función para tener en cuenta esto (al crear algunos problemas con las matrices, al menos eso es lo que entiendo del documento que enlazaste).
De todas formas, si te entiendo correctamente, el problema que tienes no solo se trata de que el panel esté desequilibrado, sino porque hay observaciones duplicadas, como estas:
ID de Empresa | Año | evento | x | Y | 1 | 1999 | 1 ene 2000 | 2 | 4 | 1 | 1999 | 20 ene 2000 | 24| 54 |
Este es un problema más serio que simplemente un panel desequilibrado. Aquí el problema no es la 'desequilibridad' sino el hecho de que tendrás observaciones 'duplicadas' si ejecutas algún modelo de panel con ID de empresa y Año como identificadores de panel, ya que no puedes tener un identificador de panel asignado a dos observaciones diferentes, ya que eso significa que tus observaciones no son únicas.
Esto podría resolverse de varias maneras:
-
Ejecutar el modelo en fechas en lugar de en años si los eventos no ocurren exactamente al mismo tiempo. Entonces, ahora tus identificadores de panel serían: ID de Empresa Evento en lugar de ID de Empresa Año.
-
Crear un nuevo ID de empresa para cada evento. Por lo tanto, podrías crear un nuevo ID de empresa así:
ID de Empresa | Año | evento | x | Y | 1_1 | 1999 | 1 ene 2000 | 2 | 4 | 1_2 | 1999 | 20 ene 2000 | 24| 54 |
sin embargo, la desventaja con el estimador dentro sería que si estos múltiples eventos en el mismo día ocurren solo una vez, estos se eliminarán, y también mi intuición me dice que esto conduciría a algunos problemas metodológicos si intentaras, por ejemplo, agrupar errores a nivel de empresa, ya que una empresa se trataría de manera diferente según el número de eventos.
-
También podrías agregar los valores de X e Y a través de eventos en un solo día e incluir solo un indicador adicional para empresas con múltiples eventos en un año determinado.
-
Considera un estimador diferente. Por ejemplo, en lugar del estimador dentro podrías utilizar OLS agrupado donde tratas cada observación como un evento individual con efectos fijos de empresa. No puedo pensar en ninguna razón por la que eso no podría aplicarse aquí.
También aquí recomendaría buscar paneles con duplicados. Sé que esto no es un duplicado genuino, pero en su mayoría cuando se discute este problema, muchas personas llaman a estas observaciones duplicados, por lo que probablemente te dará mejores resultados que buscar solo datos de paneles desequilibrados, que generalmente se aplica a datos de panel donde simplemente tienes diferentes $T$ para cada ID de panel.