Я использую R для запуска симуляции Монте-Карло, изучая производительность оценщиков панельных данных. Поскольку я буду запускать большое количество испытаний, мне нужно получить по крайней мере достойную производительность от моего кода.
Использование Rprof
в 10 испытаниях моей симуляции показывает, что значительная часть времени тратится на вызовы summary.plm
. Первые несколько строк Rprofsummary
представлены ниже:
$by.total
total.time total.pct self.time self.pct
"trial" 54.48 100.0 0.00 0.0
"coefs" 53.90 98.9 0.06 0.1
"model.matrix" 36.72 67.4 0.10 0.2
"model.matrix.pFormula" 35.98 66.0 0.06 0.1
"summary" 33.82 62.1 0.00 0.0
"summary.plm" 33.80 62.0 0.08 0.1
"r.squared" 29.00 53.2 0.02 0.0
"FUN" 24.84 45.6 7.52 13.8
Я вызываю summary
в своем коде, потому что мне нужно получить стандартные ошибки оценок коэффициентов, а также сами коэффициенты (которые я мог бы получить только из объекта plm). Мой звонок выглядит как
regression <- plm(g ~ y0 + Xit, data=panel_data, model=model, index=c("country","period"))
coefficients_estimated <- summary(regression)$coefficients[,"Estimate"]
ses_estimated <- summary(regression)$coefficients[,"Std. Error"]
У меня есть непреодолимое чувство, что это огромная трата процессорного времени, но я недостаточно знаю, как R делает что-то, чтобы избежать вызова сводки. Я был бы признателен за любую информацию о том, что здесь происходит за кулисами, или о каком-либо способе сокращения времени, необходимого для выполнения этого.