Un ensemble de données est sous la forme d’un “panel” lorsque nous avons plusieurs observations (généralement au fil du temps) sur chaque individu ou unité pour chaque variable.
Y_{it}\equiv la valeur de la variable Y pour l’individu i au temps t
pour t=1,\ldots,T et i=1,\ldots,N
Séries de prix, dividendes et bénéfices pour de nombreuses actions
Séries de rendements obligataires pour divers gouvernements ou échéances ou cotes de crédit
Séries de prix à terme à diverses échéances ou prix d’options à divers prix d’exercice
Exemple : SEC MIDAS LitVol(’000)
Ticker
A
AA
AACI
AADI
AAGR
AAL
AAMC
AAME
AAN
AAOI
...
ZTEK
ZTS
ZUMZ
ZUO
ZVIA
ZVRA
ZVSA
ZWS
ZYME
ZYXI
Date
2024-07-01
800.319
995.683
0.0
82.344
322.091
8315.465
2.82
0.051
431.808
737.982
...
4.05
429.642
173.062
383.065
66.869
180.628
3.565
368.583
70.457
55.611
2024-07-02
535.32
1286.891
0.0
186.901
260.099
6145.214
5.266
1.673
352.509
993.449
...
5.367
540.356
149.839
327.406
65.792
86.322
0.985
304.206
103.186
50.952
2024-07-03
353.257
1647.61
0.002
56.845
116.272
4710.886
0.002
0.064
119.644
391.225
...
6.211
349.412
80.541
136.898
54.816
35.157
1.181
215.671
26.862
16.952
2024-07-05
284.856
822.498
0.0
147.106
329.09
7176.805
1.172
1.604
228.559
640.502
...
1.898
358.113
116.616
228.105
65.782
79.242
1.78
203.873
88.066
28.105
2024-07-08
354.793
1067.206
0.13
57.828
175.742
8213.584
1.771
2.342
190.217
980.914
...
13.724
412.357
112.732
786.813
67.608
89.607
1.915
214.391
126.635
41.124
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
2024-09-24
232.23
3109.598
<NA>
59.912
53.658
8101.117
<NA>
1.067
476.413
2143.362
...
0.895
363.573
88.349
268.977
36.054
745.519
10.586
408.781
122.893
23.035
2024-09-25
280.864
1593.902
<NA>
15.899
159.98
7245.156
<NA>
0.892
471.298
750.111
...
5.189
347.512
92.502
209.866
67.828
742.23
14.732
309.973
112.524
20.077
2024-09-26
484.596
3132.624
<NA>
22.792
<NA>
18221.691
<NA>
4.106
934.983
940.721
...
6.941
324.956
94.874
223.132
31.602
424.939
5.25
336.59
91.298
25.922
2024-09-27
535.44
1937.906
<NA>
34.539
<NA>
8583.044
<NA>
2.019
257.512
1098.977
...
6.577
272.721
85.594
324.826
26.074
539.017
28.006
472.623
111.826
43.774
2024-09-30
392.812
976.334
<NA>
63.99
<NA>
7218.296
<NA>
3.844
2921.026
853.879
...
3.356
369.675
107.455
304.86
38.376
315.584
5.785
347.917
128.399
19.274
64 rows × 3981 columns
Données en panel
Les ensembles de données en panel peuvent être :
Large (gros N) ou étroit (petit N)
Long (gros T) ou court (petit T)
Équilibré(T_i = T_j = T \; \forall \; i,j) ou déséquilibré (certains i ont plus d’observations que d’autres.)
Le panel précédent est :
Large (N=3981)
Relativement long (T=64)
Les panels déséquilibrés ne sont pas spécialement difficiles, mais l’algèbre devient plus complexe. Pour cette raison, nous allons parler uniquement des panneaux équilibrés.
Effets communs et regroupement
Supposons que nous voulons étudier l’impact des flux de trésorerie des entreprises CF sur les dépenses d’investissement des entreprises I. Qu’est-ce que cela veut dire?
Voulons-nous savoir comment les dépenses d’investissement d’une entreprise réagissent durant les périodes où les flux de trésorerie sont élevés ?
Cela signifie que nous sommes intéressés par la variation dans le temps.
Nous pourrions effectuer une régression temporelle pour chaque i: I_{it}=stuff+\beta_{i}\cdot CF_{it}+e_{it}
MIDAS
Security
McapRank
TurnRank
VolatilityRank
PriceRank
LitVol('000)
OrderVol('000)
Hidden
TradesForHidden
HiddenVol('000)
TradeVolForHidden('000)
Cancels
LitTrades
OddLots
TradesForOddLots
OddLotVol('000)
TradeVolForOddLots('000)
Ticker
Date
A
2024-07-01
Stock
10.0
7.0
3.0
9.0
800.319
37442.439
5802.0
23316.0
366.567
1166.886
274839.0
17330.0
17147.0
23127.0
396.583
1161.27
2024-07-02
Stock
10.0
6.0
3.0
9.0
535.32
44473.496
4714.0
18956.0
248.298
783.618
309707.0
14202.0
15164.0
18912.0
324.794
781.162
2024-07-03
Stock
10.0
7.0
3.0
9.0
353.257
24631.062
3832.0
12598.0
232.964
586.221
160482.0
8739.0
9697.0
12571.0
231.621
585.058
2024-07-05
Stock
10.0
5.0
2.0
9.0
284.856
30088.535
2901.0
12704.0
135.068
419.924
228535.0
9772.0
10699.0
12672.0
185.578
419.138
2024-07-08
Stock
10.0
7.0
1.0
9.0
354.793
24877.289
3355.0
13779.0
180.036
534.829
217195.0
10407.0
11166.0
13761.0
224.297
533.815
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
ZYXI
2024-09-24
Stock
4.0
2.0
5.0
4.0
23.035
2757.671
128.0
816.0
4.395
27.43
22132.0
686.0
694.0
814.0
12.818
27.327
2024-09-25
Stock
4.0
2.0
5.0
4.0
20.077
2233.598
105.0
743.0
2.271
22.348
20306.0
636.0
657.0
741.0
12.3
22.329
2024-09-26
Stock
4.0
2.0
5.0
4.0
25.922
2236.208
195.0
870.0
5.82
31.742
20308.0
669.0
751.0
864.0
16.211
31.629
2024-09-27
Stock
4.0
3.0
9.0
4.0
43.774
3139.279
535.0
1430.0
15.749
59.523
28486.0
887.0
1168.0
1422.0
20.682
59.276
2024-09-30
Stock
4.0
2.0
6.0
4.0
19.274
2357.55
72.0
593.0
1.699
20.973
23045.0
521.0
503.0
593.0
9.63
20.973
248961 rows × 17 columns
Effets communs et regroupement
Voulons-nous savoir si les entreprises avec des flux de trésorerie plus élevés tendent à investir plus que celles avec des flux de trésorerie plus faibles ?
Cela signifie que nous sommes intéressés par la variation entre les entreprises.
Nous pourrions effectuer une régression transversale pour chaque t: I_{it}=stuff+\beta_{t}\cdot CF_{it}+e_{it}
MIDAS
Security
McapRank
TurnRank
VolatilityRank
PriceRank
LitVol('000)
OrderVol('000)
Hidden
TradesForHidden
HiddenVol('000)
TradeVolForHidden('000)
Cancels
LitTrades
OddLots
TradesForOddLots
OddLotVol('000)
TradeVolForOddLots('000)
Date
Ticker
2024-07-01
A
Stock
10.0
7.0
3.0
9.0
800.319
37442.439
5802.0
23316.0
366.567
1166.886
274839.0
17330.0
17147.0
23127.0
396.583
1161.27
AA
Stock
9.0
9.0
5.0
8.0
995.683
69573.964
2350.0
19386.0
159.781
1155.464
305304.0
16885.0
13209.0
19225.0
335.835
1150.461
AACI
Stock
3.0
1.0
1.0
5.0
0.0
33.711
0.0
0.0
0.0
0.0
77.0
0.0
0.0
0.0
0.0
0.0
AADI
Stock
2.0
8.0
6.0
2.0
82.344
2807.266
216.0
1105.0
15.517
97.861
13498.0
883.0
674.0
1099.0
22.437
97.64
AAGR
Stock
1.0
10.0
10.0
1.0
322.091
8819.409
728.0
1855.0
177.737
499.828
6567.0
1123.0
326.0
1850.0
11.157
494.757
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
2024-09-30
ZVRA
Stock
5.0
9.0
8.0
4.0
315.584
14270.604
1053.0
4522.0
77.934
393.518
50675.0
3456.0
2760.0
4508.0
79.422
393.229
ZVSA
Stock
1.0
9.0
7.0
2.0
5.785
206.686
15.0
100.0
1.118
6.903
1260.0
85.0
72.0
100.0
2.568
6.903
ZWS
Stock
8.0
7.0
2.0
7.0
347.917
20885.803
1660.0
8262.0
89.895
437.812
184048.0
6588.0
5949.0
8244.0
138.253
436.824
ZYME
Stock
6.0
8.0
5.0
5.0
128.399
7992.542
887.0
3718.0
24.615
153.014
75387.0
2821.0
2952.0
3708.0
60.181
152.852
ZYXI
Stock
4.0
2.0
6.0
4.0
19.274
2357.55
72.0
593.0
1.699
20.973
23045.0
521.0
503.0
593.0
9.63
20.973
248961 rows × 17 columns
Effets communs et regroupement
Que se passe-t-il si le premier effet est constant entre les entreprises ?
Que se passe-t-il si le second effet est constant dans le temps ?
En effectuant N ou T régressions séparées, nous utiliserons nos données de manière inefficace.
Cela signifie que les erreurs standards sont plus grandes que nécessaire.
Au lieu de cela, nous pourrions effectuer une régression comme I_{it}=stuff+\beta\cdot CF_{it}+e_{it}
Nous appelons cela une régression panel.
Cela restreint \beta_i = \beta_t = \beta
Nous appelons cela la restriction d’effet commun ou de pooling.
Nous pouvons estimer la régression ci-dessus en utilisant OLS simplement en empilant nos données.
Puis nous exécutons une régression sur nos données empilées et obtenons une série de résidus \{\hat{u}_{1}, \ldots, \hat{u}_{N \cdot T}\}
RSS_R \equiv \sum_{t=1}^{N \cdot T} \hat{u}_{t}^2
Nous pouvons alors calculer la statistique F habituelle F = \frac{RSS_R - RSS_U}{RSS_U} \cdot \frac{N \cdot (T - k)}{R} \sim F(R,N \cdot (T - k)) \; \text{sous} \; H_0 où k = 1 + le nombre de variables dans stuff.
Biais de variable omise
Rappelons notre révision de l’OLS, où nous avons mentionné une méthode alternative pour estimer \widehat{\beta}_{i} :
Régressons y sur toutes les autres variables X_{j}\neq X_{i} et sauvegardons les résidus \widehat{\varepsilon}_{y}.
Régressons X_{i} sur toutes les autres variables X_{j}\neq X_{i} et sauvegardons les résidus \widehat{\varepsilon}_{x}.
\widehat{\beta}_{i} est le coefficient de la régression de \widehat{\varepsilon}_{y} sur \widehat{\varepsilon}_{x}.
Cela montre que \widehat{\beta}_{i} capture l’effet de X_{i} sur yqui ne peut pas être expliqué par d’autres variablesX_{j}.
Problème
Que se passe-t-il si nous avons oublié d’inclure une variable importante X_{j} ?
Alors nous pourrions avoir un biais de variable omise !
Supposons que le vrai modèle est y_{t}=\beta_{X}\cdot X_{t}+\beta_{Z}\cdot Z_{t}+e_{t}
mais que nous omettons Z_{t} et utilisons à la place OLS pour estimer
Nous pourrions penser que de nombreuses choses autres que CF influencent I :
Les entreprises dans des industries à forte intensité de capital (par exemple, la production d’électricité, fabrication aéronautique) pourraient investir plus que celles d’autres industries (par exemple, franchises de restauration rapide).
Les entreprises pourraient investir beaucoup moins que d’habitude lors de récessions (faible demande) ou plus que d’habitude lorsque les taux d’intérêt sont faibles.
Si nous n’ajoutons pas de variables supplémentaires pour contrôler ces effets, nos estimations de \beta peuvent être biaisées.
CF_{it} est-il corrélé avec la ou les variables manquantes ?
C’est pourquoi nous avons inclus stuff dans les régressions panel ci-dessus.
Effets fixes
Problème
Que faire si nous n’avons pas de données sur les variables manquantes ?
Solution
Dans de nombreux cas (mais pas tous), nous pouvons ajouter un ensemble de variables indicatrices.
Nous appelons cela les fffets fixes.
Effets fixes d’entreprise (ou entité)
Cas 1 :
Les variables manquantes sont constantes au fil du temps t mais pas pour chaque i.
Nous pouvons ajouter N variables indicatrices, une pour chaque valeur de i.
Elles captureront l’effet global de toutes les variables omises qui sont constantes dans le temps.
Exemple
Si I_{it} dépend de CF_{it} et de l’industrie de l’entreprise, ces variables indicatrices captureront cet effet.
Effets fixes de temps
Cas 2
Les variables manquantes sont constantes pour chaque i mais pas dans le temps t.
Nous pouvons ajouter T variables indicatrices, une pour chaque période de temps t.
Nous appelons cela les effets fixes de temps.
Elles captureront l’effet global de toutes les variables omises qui sont les mêmes pour tous les i.
Exemple
Si I_{it} dépend de CF_{it} et de la croissance du PIB ou de l’écart de production, ces variables indicatrices captureront ces effets.
Effets fixes d’entreprise et de temps
Cas 3
Certaines variables manquantes sont constantes pour chaque i, d’autres pour chaque t.
Nous pouvons ajouter N+T variables indicatrices, une pour chaque période de temps tet une pour chaque valeur de i.
Nous avons largement assez d’observations pour estimer les deux ! (N \cdot T \gg N + T)
Effets fixes
Quelques points à noter :
Inclure toutes les variables indicatrices N ou T signifie que nous ne pouvons pas également inclure une constante !
Inclure les effets fixes de temps signifie que nous ne pouvons inclure aucune variable qui varie uniquement dans le temps (par exemple, les taux des bons du Trésor, les rendements du portefeuille de marché, etc.)
Nous pourrions inclure un nombre moins élevé de variables indicatrices si nous le souhaitons. (une par code postal ? code SIC ? année ?)
Parce que nous sommes intéressés par \beta, nous ne rapportons généralement pas les (nombreux!) coefficients sur les variables indicatrices.
Effets fixes
Le modèle à effets fixes ressemble à I_{it}=\alpha_{i}+\beta\cdot CF_{it}+e_{it}
C’est équivalent à utiliser OLS pour estimer I_{it}=\left( \sum_{j=1}^N\alpha_{j}\cdot D_{j}\right) +\beta\cdot CF_{it}+e_{it}
où D_{j}=1 pour l’entreprise j et =0 sinon.
Effets fixes
Cependant, ce n’est pas la manière dont les estimations des effets fixes sont généralement programmées.
Lorsque N est grand, notre matrice X'X est large.
L’inversion de grandes matrices est relativement lente.
Pour éviter cela, nous remplaçons chaque variable par son écart par rapport à sa valeur moyenne dans le temps. \tilde{y}_{it} \equiv y_{it} - T^{-1} \cdot \left( \sum_{t=1}^T y_{it} \right)
L’OLS sur \tilde{I}_{it}= \beta\cdot \tilde{CF}_{it}+e_{it} donnera des \hat{\beta}, \hat{e}_{it}, etc. identiques aux précédents, mais sera bien plus rapide !
C’est une des raisons pour lesquelles nous aimons utiliser du code optimisé pour les données de panel.
Estimation des modèles de données de panel
Package Python pour estimer des modèles linéaires en finance et en économie :
Modèles de données de panel avec effets fixes (PanelOLS)
Estimation de Fama-MacBeth (FamaMacBeth)
Modèles à variables instrumentales : moindres carrés en deux étapes (IV2SLS) - prochaine séance
Méthode généralisée des moments (GMM, IVGMM)
Estimation et test de modèles d’évaluation d’actifs - prochain cours
➕➕➕ beaucoup plus
Inférence
Problème
Comment testons-nous les hypothèses sur \beta ?
Solution
Traitez comme pour OLS !
Problème
L’inférence OLS suppose que les erreurs sont i.i.d.
Cela signifie que E(e_{it} \cdot e_{jt}) = 0 = E(e_{it} \cdot e_{i\tau}) \quad \forall i \neq j, t \neq \tau
Cela est souvent peu réaliste !
Solution
C’est souvent difficile !
Si nous connaissons la structure des corrélations, nous pouvons essayer de compenser (ajout de retards, ou utilisation d’erreurs standards ‘groupées’).
Si nous ne le savons pas, mais que N, T sont “grands”, nous pouvons utiliser des corrections non paramétriques.
Erreurs standards groupées
Nous pouvons écrire l’équation de régression panel comme :
y_{i,t}=X_{i,t}\beta+\varepsilon_{i,t}
Nous savons que si nous estimons \beta avec OLS, l’estimateur aura la variance suivante :
Mais que se passe-t-il si les erreurs sont corrélées au sein de chaque entreprise i ou période de temps t ?
Erreurs standards groupées
Supposons que les données ont un effet d’entreprise non observé qui est fixe :
X_{i,t} = \alpha_i + \nu_{i,t}.
Les résidus peuvent être spécifiés comme
\varepsilon_{i,t} = \gamma_i + \eta_{i,t}.
Erreurs standards groupées
À la fois la variable indépendante et le résidu sont corrélés entre les observations de la même entreprise, mais sont indépendants entre les entreprises :
\begin{aligned}
corr(X_{i,t}, X_{j,s}) &= 1 \text{ pour } i=j \text{ et } t=s\\
&= \rho_{X} = \sigma^2_{\alpha} / \sigma^2_X \text{ pour } i=j \text{ et tous } t\neq s\\
&= 0 \text{ pour tous } i\neq j
\end{aligned}
\begin{aligned}
corr(\varepsilon_{i,t}, \varepsilon_{j,s}) &= 1 \text{ pour } i=j \text{ et } t=s\\
&= \rho_{\varepsilon} = \sigma^2_{\gamma} / \sigma^2_{\varepsilon} \text{ pour } i=j \text{ et tous } t\neq s\\
&= 0 \text{ pour tous } i\neq j.
\end{aligned}
Puisque les autocorrelations peuvent être positives ou négatives, il est possible que l’erreur standard OLS sous- ou surestime l’erreur standard réelle.
La corrélation des résidus au sein d’un cluster est le problème que les erreurs standards groupées sont conçues pour corriger.
Cette corrélation peut être de n’importe quelle forme; aucune structure paramétrique n’est supposée. Cependant, la somme au carré de X_{i,t}\varepsilon_{i,t} est supposée avoir la même distribution à travers les clusters.
Petersen, Mitchell A. 2008. “Estimating Standard Errors in Finance Panel Data Sets: Comparing Approaches.”The Review of Financial Studies 22 (1): 435–80.