Is the model good enough?

Model diagnosis

The model

# Our model
lm1=plm(MDR_lead~MDR+EBIT_TA+MB+DEP_TA+FA_TA+lnTA+IndMed,index="pid",model="within",data=regdtc)
stargazer(lm1,type="text")
## 
## =========================================
##                  Dependent variable:     
##              ----------------------------
##                        MDR_lead          
## -----------------------------------------
## MDR                    0.580***          
##                        (0.004)           
##                                          
## EBIT_TA               -0.032***          
##                        (0.003)           
##                                          
## MB                    -0.001***          
##                        (0.0002)          
##                                          
## DEP_TA                  -0.017           
##                        (0.022)           
##                                          
## FA_TA                  0.049***          
##                        (0.005)           
##                                          
## lnTA                   0.019***          
##                        (0.001)           
##                                          
## IndMed                -0.107***          
##                        (0.011)           
##                                          
## -----------------------------------------
## Observations            64,024           
## R2                      0.351            
## Adjusted R2             0.278            
## F Statistic  4,444.871*** (df = 7; 57522)
## =========================================
## Note:         *p<0.1; **p<0.05; ***p<0.01
# Predictions
regdtc[,MDRp:=lm1$model[[1]]-lm1$residuals]

# Residuals
regdtc[,err:=as.numeric(residuals(lm1))]

# Fixed Effects
d=as.data.frame(fixef(lm1))
names <- rownames(d)
rownames(d) <- NULL
fe <- cbind(names,d)
names(fe)=c("pid","fe")
regdtc=merge(regdtc,fe,by="pid")

# Lambda and betas
lambda=1-coefficients(lm1)[[1]]
#according to flannery MDR_lead-lambda*beta*Xvect+(1-lambda)MDR+err+fe
#the coefficients are thus lmbda*beta
c_EBIT_TA=coefficients(lm1)[[2]]/lambda
c_MB=coefficients(lm1)[[3]]/lambda
c_DEP_TA=coefficients(lm1)[[4]]/lambda
c_FA_TA=coefficients(lm1)[[5]]/lambda
c_lnTA=coefficients(lm1)[[6]]/lambda
c_IndMed=coefficients(lm1)[[7]]/lambda
c_fe=1/lambda
# Target Debt Ratio (tdr)
# Question here: Does fe have coefficient? At least 1/lambda
regdtc[,tdr:=as.numeric(c_EBIT_TA*EBIT_TA+c_MB*MB+c_DEP_TA*DEP_TA+c_FA_TA*FA_TA+c_lnTA*lnTA+c_IndMed*IndMed+c_fe*fe)]
#summary(regdtc$tdr)
#unique(regdtc[tdr<0]$pid) There are some negatives

#regdtc[,delta_MDR:=MDR_lead-MDR]
regdtc[,delta_MDR:=MDRp-MDR] #with the predicted
#regdtc[,delta_MDR:=MDRp-MDR]
regdtc[,gap:=tdr-MDR]#deviation from the optimal
regdtc[,lambda_gap:=lambda*gap]#variation of the optimal
regdtc[gap!=0,lambda_i:=delta_MDR/gap]
#regdtc[gap!=0,lambda_i:=delta_MDR2/gap]

#regdtc[,Delta_EBIT_TA:=shift(EBIT_TA,n=1,type="lead")-EBIT_TA,by=pid]
#regdtc[,Delta_lnTA:=shift(lnTA,n=1,type="lead")-lnTA,by=pid]

# lm1=plm(MDR_lead~MDR+EBIT_TA+MB+DEP_TA+FA_TA+lnTA+IndMed,index="pid",model="within",data=regdtc)
# lm2=plm(MDR_lead~MDR+EBIT_TA+MB+DEP_TA+FA_TA+lnTA+IndMed+Delta_EBIT_TA+Delta_lnTA,index="pid",model="within",data=regdtc)
# lm3=plm(MDR_lead~MDR+IndMed+EBIT_TA+lnTA+Delta_EBIT_TA+Delta_lnTA,index="pid",model="within",data=regdtc)
# stargazer(lm1,lm2,lm3,type="text")
  • Example firm: Moody’s Corporation

Covariates, prediction, fixed effects and residuals over time:

# MOODY'S CORP
regdtc[pid=="N06966",.(entity_name,year,MDR,MDR_lead,MDRp,tdr,delta_MDR,gap,lambda_i,fe, IndMed)]

Chart over time:

g1=ggplot(regdtc[pid=="N06966"])+theme_minimal(base_size=8)+
   geom_line(aes(year,MDR,color="AMDR"))+geom_point(aes(year,MDR,color="AMDR"))+
   geom_line(aes(year,tdr,color="TMDR"))+ geom_point(aes(year,tdr,color="TMDR"))+geom_line(aes(year,IndMed,color="IndMed"))+ geom_point(aes(year,IndMed,color="IndMed"))+
   geom_vline(xintercept = 2001)+geom_vline(xintercept = 2002)+scale_color_manual(values=moocols[c(1,2,3)])+
  geom_vline(xintercept = 2017)+geom_vline(xintercept = 2016)+geom_vline(xintercept = 1999)+geom_vline(xintercept = 2000)

g2=ggplot(regdtc[pid=="N06966"])+theme_minimal(base_size=8)+
   geom_line(aes(year,EBIT_TA,color="EBIT_TA"))+geom_point(aes(year,EBIT_TA,color="EBIT_TA"))+
   geom_line(aes(year,DEP_TA,color="DEP_TA"))+ geom_point(aes(year,DEP_TA,color="DEP_TA"))+geom_line(aes(year,FA_TA,color="FA_TA"))+ geom_point(aes(year,FA_TA,color="FA_TA"))+
  geom_vline(xintercept = 2001)+geom_vline(xintercept = 2002)+scale_color_manual(values=moocols[c(4,5,6)])+
   geom_vline(xintercept = 2017)+geom_vline(xintercept = 2016)+geom_vline(xintercept = 1999)+geom_vline(xintercept = 2000)

g3=ggplot(regdtc[pid=="N06966"])+theme_minimal(base_size=8)+
   geom_line(aes(year,lnTA,color="lnTA"))+ geom_point(aes(year,lnTA,color="lnTA"))+
  geom_vline(xintercept = 2001)+geom_vline(xintercept = 2002)+scale_color_manual(values=moocols[c(7)])+
   geom_vline(xintercept = 2017)+geom_vline(xintercept = 2016)+geom_vline(xintercept = 1999)+geom_vline(xintercept = 2000)

grid.arrange(g1,g2,g3,nrow=3,top="Target Debt Ratio and Drivers over time | MOODY'S CORP.")

Interpretation:

  • Upper panel: Actual (MDR_lead) vs. Predicted MDR for \(t+1\) over time
  • Lower panel: Actual (MDR_current, driver), Predicted for \(t+1\), and Target. At each year, \(MDR_{i,t+1}-MDR_{i,t} = \lambda (MDR_{i,t+1}^*-MDR_{i,t}) \implies PMDR - AMDR Lagged = 0.39 (TMDR-AMDR Lagged)\)

  • Check that this holds for all firms:

summary(winsorize(as.numeric(regdtc$lambda_i)))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  0.4197  0.4197  0.4197  0.4197  0.4197  0.4197       8

Actual vs. Predicted

  • Distribution of Level Differences of actual and predicted MDR:

Overall

Distribution by sector

Distribution by size

Distribution by length of history

Let’s investigate the importance of the length of history further

## 
## ====================================================================
##                                Dependent variable:                  
##              -------------------------------------------------------
##                                     MDR_lead                        
##                          (1)                         (2)            
## --------------------------------------------------------------------
## MDR                    0.572***                    0.339***         
##                        (0.006)                     (0.008)          
##                                                                     
## EBIT_TA               -0.038***                   -0.043***         
##                        (0.005)                     (0.005)          
##                                                                     
## MB                      -0.001                      -0.001          
##                        (0.0004)                    (0.001)          
##                                                                     
## DEP_TA                  0.011                       0.029           
##                        (0.037)                     (0.045)          
##                                                                     
## FA_TA                  0.038***                     0.020*          
##                        (0.008)                     (0.011)          
##                                                                     
## lnTA                   0.031***                    0.044***         
##                        (0.002)                     (0.003)          
##                                                                     
## IndMed                -0.127***                   -0.179***         
##                        (0.018)                     (0.025)          
##                                                                     
## --------------------------------------------------------------------
## Observations            26,930                      21,115          
## R2                      0.341                       0.135           
## Adjusted R2             0.268                       -0.082          
## F Statistic  1,794.352*** (df = 7; 24230) 376.493*** (df = 7; 16885)
## ====================================================================
## Note:                                    *p<0.1; **p<0.05; ***p<0.01

Correlation of actual and predicted, at the firm level

“Cov” means correlation with lagged MDR (covariate) and “act” with actual MDR (what we aim to predict)
  • We predict better for large firms, they also have more history…
  • It could also be because large firms are more stable and their capital structure changes less…
## Observations: 64,024
## Variables: 24
## $ pid         <chr> "000360", "000360", "000360", "000360", "000360", "0…
## $ entity_name <chr> "AAON, INC.", "AAON, INC.", "AAON, INC.", "AAON, INC…
## $ year        <int> 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006…
## $ ndy         <chr> "N34", "N34", "N34", "N34", "N34", "N34", "N34", "N3…
## $ sector      <chr> "Business_Products", "Business_Products", "Business_…
## $ MDR         <dbl> 0.1052741950, 0.0620750346, 0.1026217066, 0.01069722…
## $ EBIT_TA     <dbl> 0.18221597, 0.27238475, 0.27112135, 0.29939052, 0.24…
## $ MB          <dbl> 2.4917398, 2.2475484, 2.0791963, 3.1502759, 2.334089…
## $ DEP_TA      <dbl> 0.05638934, 0.05221972, 0.04510662, 0.05740874, 0.05…
## $ FA_TA       <dbl> 0.3673425, 0.3781199, 0.3835039, 0.4459270, 0.493179…
## $ lnTA        <dbl> 3.922092, 4.071690, 4.341439, 4.334607, 4.518664, 4.…
## $ lnTAcpi     <dbl> 3.547762, 3.719004, 4.021964, 4.043002, 4.242794, 4.…
## $ lnSALES     <dbl> 4.670780, 4.852304, 5.043309, 5.057850, 5.043909, 5.…
## $ lnSALEScpi  <dbl> 4.296449, 4.499617, 4.723834, 4.766244, 4.768039, 4.…
## $ MDR_lead    <dbl> 0.0620750346, 0.1026217066, 0.0106972233, 0.01894497…
## $ IndMed      <dbl> 0.25556764, 0.27299627, 0.27437743, 0.25822034, 0.27…
## $ MDRp        <dbl> 0.035878725, 0.009738089, 0.038941505, -0.011865025,…
## $ err         <dbl> 0.026196310, 0.092883618, -0.028244282, 0.030810003,…
## $ fe          <dbl> -0.08276884, -0.08276884, -0.08276884, -0.08276884, …
## $ tdr         <dbl> -0.060088609, -0.062638929, -0.049122156, -0.0430664…
## $ delta_MDR   <dbl> -0.069395470, -0.052336946, -0.063680202, -0.0225622…
## $ gap         <dbl> -0.165362804, -0.124713964, -0.151743863, -0.0537636…
## $ lambda_gap  <dbl> -0.069395470, -0.052336946, -0.063680202, -0.0225622…
## $ lambda_i    <dbl> 0.4196559, 0.4196559, 0.4196559, 0.4196559, 0.419655…

Alternative models

## 
## ==============================================================
##                               Dependent variable:             
##                  ---------------------------------------------
##                                    MDR_lead                   
##                   F&R2006     AR1    F&R2006+Growth AR1+Growth
##                     (1)       (2)         (3)          (4)    
## --------------------------------------------------------------
## MDR              0.581***  0.604***     0.598***     0.608*** 
##                   (0.004)   (0.004)     (0.004)      (0.004)  
## EBIT_TA          -0.031***             -0.094***    -0.091*** 
##                   (0.003)               (0.004)      (0.003)  
## MB               -0.001***             -0.002***              
##                  (0.0002)               (0.0002)              
## DEP_TA            -0.016                 -0.012               
##                   (0.022)               (0.023)               
## FA_TA            0.050***               0.053***              
##                   (0.005)               (0.005)               
## lnTAcpi          0.018***               0.023***     0.027*** 
##                   (0.001)               (0.001)      (0.001)  
## IndMed           -0.114*** -0.087***   -0.064***    -0.053*** 
##                   (0.012)   (0.012)     (0.012)      (0.012)  
## Delta_EBIT_TA                          -0.098***    -0.097*** 
##                                         (0.003)      (0.003)  
## Delta_lnTAcpi                           0.049***     0.043*** 
##                                         (0.002)      (0.002)  
## Delta_lnSALEScpi                         -0.002       -0.001  
##                                         (0.001)      (0.001)  
## --------------------------------------------------------------
## Observations      63,385    63,385       57,529       57,529  
## R2                 0.351     0.339       0.368        0.365   
## Adjusted R2        0.285     0.272       0.296        0.293   
## ==============================================================
## Note:                              *p<0.1; **p<0.05; ***p<0.01

By size:

  • By sector:

Takeaways

  • By looking at the mean square error metric we see that the predictions are better for the larger firms,and for firms with more history.
  • By sector, Utilities and HiTech yield the best predictions and Unassigned and HeathCare the worse.
  • We see that the correlation of the predicted with the past period MDR (covariate) is large, whereas the correlation with the actual ranges from 0.62 on average for the large firms to 0.34 on average for the smallest.
  • Large firms have on average more than
  • The predictions are largely driven by past period MDR. What if the reality of the firm changed?
  • The chosen model (F&R 2006) is in essence a theoretical model aimed at proving the trade-off theory and hence no need to include performance metrics like sales growth.
  • What if they matter?

  • TDR is upwards sloping which makes sense