You just need to look inside plm:::summary.plm
to see what it does. When you do this, you will see that your two lines calling summary()
on your model can be replaced by:
coefficients_estimated <- coef(regression) ses_estimated <- sqrt(diag(vcov(regression)))
For instance:
require(plm) data("Produc", package = "plm") zz <- plm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp, data = Produc, index = c("state","year"))
summary(zz)
gives:
> summary(zz) Oneway (individual) effect Within Model .... Coefficients : Estimate Std. Error t-value Pr(>|t|) log(pcap) -0.02614965 0.02900158 -0.9017 0.3675 log(pc) 0.29200693 0.02511967 11.6246 < 2.2e-16 *** log(emp) 0.76815947 0.03009174 25.5273 < 2.2e-16 *** unemp -0.00529774 0.00098873 -5.3582 1.114e-07 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ....
and the two lines I showed returned for zz
:
> coef(zz) log(pcap) log(pc) log(emp) unemp -0.026149654 0.292006925 0.768159473 -0.005297741 > sqrt(diag(vcov(zz))) log(pcap) log(pc) log(emp) unemp 0.0290015755 0.0251196728 0.0300917394 0.0009887257
You really do not provide enough information (for example, simulation code or the full output from Rprof()
) to say whether this will help - it certainly does not seem like a huge amount of time is spent on summary()
; FUN
much more expensive than anything else you show, and of the elements you show, r.squared()
is the only one that appears in plm:::summary.plm()
, and it looks like this not enough time.
So, is it worth noting that the above speeds up the work.
source share