es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe alguna manera de obtener el intercepto del efecto fijo de la empresa del modelo Python PanelOLS?

Estoy en el proceso de estimar el efecto fijo de datos de panel utilizando el paquete statsmodel de Python.

En primer lugar, los datos utilizados en el análisis incluyen X e Y observados en el tiempo con varias compañías. A continuación, se muestran algunos ejemplos de los datos reales, pero originalmente, hay un Panel Balanceado de alrededor de 5,000 datos de un año de compañías.

| date       | firm | X1 | X2 | X3 | Y |
|:---------- |:----:|:--:|:--:|:--:|--:|
| 2021-01-01 | A    | 1  | 4  | 1  | 10|
| 2021-01-02 | A    | 2  | 7  | 0  | 21|
| 2021-01-03 | A    | 4  | 3  | 1  | 12|
| 2021-01-01 | B    | 2  | 1  | 0  | 4 |
| 2021-01-02 | B    | 3  | 7  | 1  | 9 |
| 2021-01-03 | B    | 7  | 1  | 1  | 4 |

Cuando se analiza el modelo de efecto fijo que controla el efecto de la compañía con el código a continuación, los resultados se derivan bien sin ningún problema.

mod = PanelOLS.from_formula('Y ~ X1 + X2 + X3 + EntityEffects',
                            data=df.set_index(['firm', 'date']))
result = mod.fit(cov_type='clustered', cluster_entity=True)
result.summary

[output]

Sin embargo, el problema es que el efecto del término de intercepción no se imprime en el valor del resultado, por lo que quiero encontrar una manera de resolver este problema.

¿Existe alguna opción para obligar a que el término de intercepción se imprima?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una opción para forzar la término de intercepción que se muestre en los resultados de PanelOLS. Puede agregar el argumento has_const=True al crear el objeto PanelOLS, lo que incluirá la término de intercepción en los resultados. Aquí hay un ejemplo:

    mod = PanelOLS.from_formula('Y ~ X1 + X2 + X3', data=df.set_index(['firm', 'date']), has_const=True)
    result = mod.fit(cov_type='clustered', cluster_entity=True)
    result.summary
    

    Con este cambio, los resultados de PanelOLS incluirán la término de intercepción.

Comments are closed.