Soy estudiante y actualmente estoy trabajando en mi tesis de licenciatura. Y como se acerca el próximo plazo, espero que alguien pueda echarme una mano en mi constante problema:
Necesito estimar el siguiente modelo con el estimador GMM:
Hasta ahora estaba usando pgmm función en plm paquete. Puedes revisar otros temas míos con los problemas que he enfrentado y que aún no he resuelto.
Por lo tanto, traté de pasar a otro paquete pdynmc autorizado por el Dr. Markus Fritsch.
Aquí está una parte de mi conjunto de datos filtrados con empresas que tienen al menos 5 años de observaciones: https://drive.google.com/file/d/1dFUgXp8e1K0CdqMTpbtfviDq9vgJNOxW/view?usp=sharing
No estoy seguro de que pueda obtener un contexto de la misma, pero necesito estimar similar a este modelo como:
Un cambio o crecimiento en la variable dependiente de t a t+1 (TFPt+1) = instrumentos GMM, por lo que entendí, de la variable dependiente rezagada (así que cambio rezagado en la variable dependiente) (TFPt, y TFPt-1) + cambio en otra variable (Deuda), la medida de la variable necesaria (fricción financiera) + interacción entre las 2 últimas variables (fricción financiera * Deuda) + variables de control (edad de la empresa, tamaño de la empresa o log(TA), cambio en las ventas o Ventas).
En mi conjunto de datos, las variables necesarias son
- ID - es una identificación de las empresas
- Año - el año de observación
- ta - Log de los activos totales
- ff1-5 - variable de fricción financiera de las empresas
- LVomegaACF_A - es una medida de la PTF
- domegaACF_A - es la medida de la PTF
- ddebt - Variable de la deuda
- dsales - Variable de ventas
- Edad - edad de las empresas
He intentado utilizar el paquete de la siguiente manera:
model <- pdynmc(dat = LVcheck, varname.i = "ID", varname.t = "Year",
varname.y = "domegaACF_A", lagTerms.y = 2,
fur.con = FALSE, varname.reg.fur = c("ddebt", "ff1", "Age", "ta", "dsales"),
lagTerms.reg.fur = c(1,1,1,1,1),
fur.con.diff = TRUE, fur.con.lev = FALSE,
include.dum = TRUE, dum.diff = TRUE, dum.lev = FALSE, varname.dum = "Year",
w.mat = "iid.err", std.err = "corrected", estimation = "onestep", opt.meth = "none",
use.mc.nonlin = FALSE, use.mc.diff = TRUE, use.mc.lev = FALSE, include.y = TRUE)
Y el error que recibo:
Error in pdynmc(dat = LVData_A, varname.i = "ID", varname.t = "Year", :
Insufficient number of time periods to derive linear moment conditions.
La pregunta es la siguiente, ¿por qué el número de períodos es insuficiente si sólo se muestran las empresas que tienen al menos 5 años de observaciones? Y también, ¿está mi código escrito de acuerdo con la especificación de mi modelo, y todos los argumentos necesarios están escritos correctamente.
Agradecería mucho sus respuestas y cualquier apoyo por su parte. Aquí está la descripción del paquete https://rdrr.io/cran/pdynmc/man/pdynmc.html
A pesar de que todo está bastante detallado allí, sigo sin entender qué es lo que está mal en lo que estoy haciendo.
Muchas gracias de antemano.
0 votos
¿Qué tipo de variable es Año en su data.frame? Puede que esté codificada como numérica, en cuyo caso el mensaje de error tiene todo el sentido. Quizás intente escribir varname.t = "as.factor(Year)" o, si eso no funciona, intente establecer LVData_A $\$$ Año <- as.factor(LVData_A $\$$ Año) antes de ejecutar la estimación.
1 votos
@PedroCunha, Si lo hago, la variable Año pierde su sentido, y no muestra el año de observación, sino simplemente números consecuentes. Y aún así, el problema existe.