Data
financial_ratios_raw <- read.csv("/home/hhs/hongyixu/web_query_output/eraxsfk71ambqx3m.csv") %>%
mutate(sale_equity = sale_invcap / equity_invcap ,
rd_equity = rd_sale * sale_equity,
adv_equity = adv_sale * sale_equity
) %>%
select(-public_date) %>%
unique() %>%
mutate(q_ym = as.yearmon(ifelse(str_length(qdate) != 10, adate, qdate)),
a_ym = as.yearmon(ifelse(str_length(adate) != 10, qdate, adate))
) %>%
na.omit()
names(financial_ratios_raw)
## [1] "gvkey" "permno" "adate" "qdate"
## [5] "bm" "evm" "roa" "roe"
## [9] "aftret_invcapx" "equity_invcap" "debt_invcap" "totdebt_invcap"
## [13] "capital_ratio" "debt_at" "debt_assets" "debt_capital"
## [17] "de_ratio" "intcov" "intcov_ratio" "at_turn"
## [21] "sale_invcap" "sale_equity" "rd_sale" "adv_sale"
## [25] "TICKER" "cusip" "rd_equity" "adv_equity"
## [29] "q_ym" "a_ym"
# as_tibble(financial_ratios_raw)
financial_ratios <- financial_ratios_raw %>%
as_tibble() %>%
group_by(q_ym) %>%
mutate(n = n()) %>%
mutate(roa_median = median(roa),
bm_median = median(bm),
bm_highq = quantile(bm, probs = 0.75),
# quantile5 = ifelse(n < 2, NA, as.numeric(quantcut(bm, q = 2))),
roic_median = median(aftret_invcapx)
) %>%
ungroup() %>%
mutate(# quantile5 = as.factor(quantile5),
Lroa = (roa <= roa_median),
Hbm = (bm > bm_median), # value firms
Lbm = (bm <= bm_median), # growth firms
Hbmq = (bm > bm_highq),
Lbmq = (bm <= bm_highq),
Hroic = (aftret_invcapx > roic_median)
) %>%
mutate(decade = paste((year(q_ym) %/% 10)*10, "s", sep = ""),
rd_assets = rd_sale * at_turn, # sales / average assets
adv_assets = adv_sale * at_turn
)
names(financial_ratios)
## [1] "gvkey" "permno" "adate" "qdate"
## [5] "bm" "evm" "roa" "roe"
## [9] "aftret_invcapx" "equity_invcap" "debt_invcap" "totdebt_invcap"
## [13] "capital_ratio" "debt_at" "debt_assets" "debt_capital"
## [17] "de_ratio" "intcov" "intcov_ratio" "at_turn"
## [21] "sale_invcap" "sale_equity" "rd_sale" "adv_sale"
## [25] "TICKER" "cusip" "rd_equity" "adv_equity"
## [29] "q_ym" "a_ym" "n" "roa_median"
## [33] "bm_median" "bm_highq" "roic_median" "Lroa"
## [37] "Hbm" "Lbm" "Hbmq" "Lbmq"
## [41] "Hroic" "decade" "rd_assets" "adv_assets"
Results
# determinants of leverage:
cat("# determinants of leverage: ")
## # determinants of leverage:
cat("/n")
## /n
# summary(lm(debt_assets ~ rd_equity + adv_equity, data = financial_ratios))
## upadted March 29, 2024:
feols(fml = debt_assets ~ rd_assets + adv_assets | TICKER + q_ym + TICKER^year(q_ym),
data = (financial_ratios), cluster = c('TICKER'))
## OLS estimation, Dep. Var.: debt_assets
## Observations: 700,882
## Fixed-effects: TICKER: 19,107, q_ym: 655, TICKER^year(q_ym): 197,810
## Standard-errors: Clustered (TICKER)
## Estimate Std. Error t value Pr(>|t|)
## rd_assets 0.054137 0.070620 0.766593 0.44333
## adv_assets 0.004636 0.007637 0.606994 0.54386
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 0.049551 Adj. R2: 0.917268
## Within R2: 7.957e-4
feols(fml = debt_assets ~ rd_assets * Hbm + adv_assets | TICKER + yearqtr(q_ym) + TICKER^year(q_ym),
data = (financial_ratios), cluster = c('TICKER'))
## OLS estimation, Dep. Var.: debt_assets
## Observations: 700,882
## Fixed-effects: TICKER: 19,107, yearqtr(q_ym): 220, TICKER^year(q_ym): 197,810
## Standard-errors: Clustered (TICKER)
## Estimate Std. Error t value Pr(>|t|)
## rd_assets 0.057086 0.072296 0.789624 4.2976e-01
## HbmTRUE -0.012771 0.002644 -4.829962 1.3762e-06 ***
## adv_assets 0.001782 0.009491 0.187781 8.5105e-01
## rd_assets:HbmTRUE -0.049421 0.009946 -4.969105 6.7844e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 0.049609 Adj. R2: 0.917149
## Within R2: 0.004542
feols(fml = debt_assets ~ rd_assets * I(intcov_ratio < 10) + adv_assets | TICKER + q_ym + TICKER^year(q_ym),
data = (financial_ratios), cluster = c('TICKER'))
## OLS estimation, Dep. Var.: debt_assets
## Observations: 700,882
## Fixed-effects: TICKER: 19,107, q_ym: 655, TICKER^year(q_ym): 197,810
## Standard-errors: Clustered (TICKER)
## Estimate Std. Error t value Pr(>|t|)
## rd_assets -0.005519 0.074458 -0.074120 9.4092e-01
## I(intcov_ratio < 10) 0.046677 0.016067 2.905212 3.6743e-03 **
## adv_assets 0.007027 0.005225 1.344992 1.7864e-01
## rd_assets:I(intcov_ratio < 10) 0.066490 0.013516 4.919416 8.7524e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 0.049027 Adj. R2: 0.919007
## Within R2: 0.021804
feols(fml = debt_assets ~ rd_assets * Lbm + adv_assets | TICKER + q_ym + TICKER^year(q_ym),
data = (financial_ratios), cluster = c('TICKER'))
## OLS estimation, Dep. Var.: debt_assets
## Observations: 700,882
## Fixed-effects: TICKER: 19,107, q_ym: 655, TICKER^year(q_ym): 197,810
## Standard-errors: Clustered (TICKER)
## Estimate Std. Error t value Pr(>|t|)
## rd_assets 0.007441 0.079433 0.093674 9.2537e-01
## LbmTRUE 0.012706 0.002544 4.995264 5.9274e-07 ***
## adv_assets 0.003657 0.008238 0.443968 6.5707e-01
## rd_assets:LbmTRUE 0.050071 0.010333 4.845585 1.2723e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 0.049457 Adj. R2: 0.917579
## Within R2: 0.004558
# determinants of R&D:
cat("# determinants of R&D: ")
## # determinants of R&D:
cat("/n")
## /n
feols(fml = rd_assets ~ debt_assets + adv_assets | TICKER + q_ym + TICKER^year(q_ym),
data = financial_ratios, cluster = c('TICKER'))
## OLS estimation, Dep. Var.: rd_assets
## Observations: 700,882
## Fixed-effects: TICKER: 19,107, q_ym: 655, TICKER^year(q_ym): 197,810
## Standard-errors: Clustered (TICKER)
## Estimate Std. Error t value Pr(>|t|)
## debt_assets 0.014596 0.019917 0.732820 0.463677
## adv_assets 0.013574 0.006024 2.253239 0.024255 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 0.025729 Adj. R2: 0.881447
## Within R2: 9.219e-4
feols(fml = rd_assets ~ debt_assets * Lroa + adv_assets | TICKER + q_ym + TICKER^year(q_ym),
data = financial_ratios, cluster = c('TICKER'))
## OLS estimation, Dep. Var.: rd_assets
## Observations: 700,882
## Fixed-effects: TICKER: 19,107, q_ym: 655, TICKER^year(q_ym): 197,810
## Standard-errors: Clustered (TICKER)
## Estimate Std. Error t value Pr(>|t|)
## debt_assets 0.005627 0.020365 0.276318 7.8231e-01
## LroaTRUE -0.006473 0.001332 -4.859905 1.1837e-06 ***
## adv_assets 0.013562 0.006069 2.234627 2.5453e-02 *
## debt_assets:LroaTRUE 0.014619 0.001646 8.883772 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 0.02572 Adj. R2: 0.881523
## Within R2: 0.00157
feols(fml = rd_assets ~ debt_assets * Lbm + adv_assets | TICKER + q_ym + TICKER^year(q_ym),
data = financial_ratios, cluster = c('TICKER'))
## OLS estimation, Dep. Var.: rd_assets
## Observations: 700,882
## Fixed-effects: TICKER: 19,107, q_ym: 655, TICKER^year(q_ym): 197,810
## Standard-errors: Clustered (TICKER)
## Estimate Std. Error t value Pr(>|t|)
## debt_assets 0.009727 0.019141 0.508180 0.6113330
## LbmTRUE -0.001404 0.002918 -0.481081 0.6304644
## adv_assets 0.013414 0.005886 2.278822 0.0226886 *
## debt_assets:LbmTRUE 0.006611 0.002326 2.842407 0.0044822 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 0.025724 Adj. R2: 0.881494
## Within R2: 0.001322
feols(fml = rd_assets ~ debt_assets * Lbmq + adv_assets | TICKER + q_ym + TICKER^year(q_ym),
data = financial_ratios, cluster = c('TICKER'))
## OLS estimation, Dep. Var.: rd_assets
## Observations: 700,882
## Fixed-effects: TICKER: 19,107, q_ym: 655, TICKER^year(q_ym): 197,810
## Standard-errors: Clustered (TICKER)
## Estimate Std. Error t value Pr(>|t|)
## debt_assets 0.010297 0.018339 0.561491 0.574470
## LbmqTRUE -0.001263 0.002662 -0.474533 0.635126
## adv_assets 0.013490 0.005962 2.262479 0.023679 *
## debt_assets:LbmqTRUE 0.005137 0.002587 1.985970 0.047051 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 0.025727 Adj. R2: 0.881468
## Within R2: 0.001102
feols(fml = rd_assets ~ debt_assets * I(intcov_ratio > 5) + adv_assets | TICKER + q_ym + TICKER^year(q_ym),
data = financial_ratios, cluster = c('TICKER'))
## OLS estimation, Dep. Var.: rd_assets
## Observations: 700,882
## Fixed-effects: TICKER: 19,107, q_ym: 655, TICKER^year(q_ym): 197,810
## Standard-errors: Clustered (TICKER)
## Estimate Std. Error t value Pr(>|t|)
## debt_assets 0.015808 0.021413 0.738225 0.460387
## I(intcov_ratio > 5) 0.001886 0.002569 0.734168 0.462856
## adv_assets 0.013648 0.006059 2.252550 0.024299 *
## debt_assets:I(intcov_ratio > 5) -0.004956 0.004614 -1.074132 0.282777
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 0.025728 Adj. R2: 0.881453
## Within R2: 9.789e-4
feols(fml = rd_assets ~ lag(debt_assets) + adv_assets | TICKER + q_ym + TICKER^year(q_ym),
data = financial_ratios, cluster = c('TICKER'))
## OLS estimation, Dep. Var.: rd_assets
## Observations: 700,882
## Fixed-effects: TICKER: 19,107, q_ym: 655, TICKER^year(q_ym): 197,810
## Standard-errors: Clustered (TICKER)
## Estimate Std. Error t value Pr(>|t|)
## lag(debt_assets) 0.014596 0.019917 0.732820 0.463677
## adv_assets 0.013574 0.006024 2.253239 0.024255 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 0.025729 Adj. R2: 0.881447
## Within R2: 9.219e-4
feols(fml = rd_assets ~ lag(debt_assets) * Lroa + adv_assets | TICKER + q_ym + TICKER^year(q_ym),
data = financial_ratios, cluster = c('TICKER'))
## OLS estimation, Dep. Var.: rd_assets
## Observations: 700,882
## Fixed-effects: TICKER: 19,107, q_ym: 655, TICKER^year(q_ym): 197,810
## Standard-errors: Clustered (TICKER)
## Estimate Std. Error t value Pr(>|t|)
## lag(debt_assets) 0.005627 0.020365 0.276318 7.8231e-01
## LroaTRUE -0.006473 0.001332 -4.859905 1.1837e-06 ***
## adv_assets 0.013562 0.006069 2.234627 2.5453e-02 *
## lag(debt_assets):LroaTRUE 0.014619 0.001646 8.883772 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 0.02572 Adj. R2: 0.881523
## Within R2: 0.00157