美文网首页stata 我爱编程
Stata: 我的程序多久能跑完?

Stata: 我的程序多久能跑完?

作者: stata连享会 | 来源:发表于2018-04-09 11:47 被阅读138次

作者:连玉君 (知乎 | 简书 | 码云)

Stata 现场培训报名中

导言

多数情况下,我们在 Stata 命令窗口中输入命令,敲回车,结果基本上瞬间生成。然而,在有些情况下,一个程序经常需要花费几十分钟 (比如,做面板门槛模型,或需要 Bootstrap),甚至几十个小时才能完成。此时,若能预先估算完成所有程序所花费的时间,对于我们合理安排日程会非常有帮助。

今天我们介绍两种方法:一个是 Stata 官方命令 timer,另一个是外部命令 benchmark,二者各有优劣。

程序计时器 timer

类似于我们在操场上跑步时所使用的秒表,每次摁下秒表,开始计时;再次摁下时则会呈现跑一圈所花费的时间。

下面我们通过一个简单的例子来说明该命令的使用方法:

timer clear 1
timer on 1
  sysuse "auto.dta", clear
  reg price wei len, vce(bootstrap, reps(1000))
timer off 1
timer list 1

结果如下:

. timer clear 1
. timer on 1
.   sysuse "auto.dta", clear
(1978 Automobile Data)
.   reg price wei len, vce(bootstrap, reps(1000))
(running regress on estimation sample)

Bootstrap replications (1000)
----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5 
..................................................    50
..................................................   100
            .......................
..................................................   950
..................................................  1000

Linear regression                               Number of obs     =         74
                                                Replications      =      1,000
                                                Wald chi2(2)      =      34.30
                                                Prob > chi2       =     0.0000
                                                R-squared         =     0.3476
                                                Adj R-squared     =     0.3292
                                                Root MSE          =  2415.7351
------------------------------------------------------------------------------
             |   Observed   Bootstrap                         Normal-based
       price |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
      weight |      4.699      1.728     2.72   0.007        1.313       8.085
      length |    -97.960     56.432    -1.74   0.083     -208.564      12.644
       _cons |  10386.541   5670.915     1.83   0.067     -728.249   21501.330
------------------------------------------------------------------------------

. timer off 1
. timer list 1
   1:      3.92 /        1 =       3.9180
  • 关键点是说明:
    • timer clear 1:用于复位第一个秒表的时间至 0;
    • timer on 1:用于启动第一个秒表,
    • timer close 1:用于关闭第一个秒表,
    • timer list 1:用于列示第一个秒的耗时
  • 在本例中,我们进行了一百次 Bootstrap 抽样,用于估算稳健型标准误,整个过程耗时 13.9 秒。
  • 因此,如果把抽样的次数增加为5000次耗时大约是 4×5=20秒 (实测结果是 18.77 秒)。你也可以据此推断当变量增加、样本数增加等情形下,大致的耗时。

外部命令 benchmark

Stata 范例

. benchmark, reps(10) disp:    ///
      qui reg price wei len, vce(bootstrap, reps(1000))
1: 3.373 seconds
2: 3.225 seconds
3: 3.247 seconds
4: 3.172 seconds
5: 3.207 seconds
6: 3.398 seconds
7: 3.265 seconds
8: 3.292 seconds
9: 3.208 seconds
10: 3.375 seconds
Average over 10 runs: 3.277 seconds

该命令的语法相对比较简洁,而且可以一次性帮我们进行十轮测试,并进而帮我们计算出平均耗时为 3.277 秒。据此我们推断,进行5000次抽样的时间,就会更加准确一些,约为 3.277*5 = 16.385 秒。

实测结果如下,与我们推算的结果非常接近:

. benchmark, reps(10) disp:    \\\
     qui reg price wei len, vce(bootstrap, reps(5000))
1: 16.12 seconds
2: 16.12 seconds
3: 16.18 seconds
4: 15.82 seconds
5: 16.07 seconds
6: 15.99 seconds
7: 16.08 seconds
8: 16.19 seconds
9: 16.07 seconds
10: 15.51 seconds
Average over 10 runs: 16.02 seconds

benchmark 的下载及安装

在命令窗口中输入如下命令,即可下载:

net install benchmark,   ///
from(https://raw.githubusercontent.com/mcaceresb/stata-benchmark/master/)

下载完成后输入如下命令,可查看详细的帮助文件:

help benchmark

关于我们

联系我们

  • 欢迎赐稿: 欢迎将您的文章或笔记投稿至Stata连享会(公众号: StataChina),我们会保留您的署名;录用稿件达五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
  • 意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。
  • 招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
  • 联系邮件: StataChina@163.com

Stata 现场培训报名中

连玉君Stata现场班报名中

欢迎加入Stata连享会(公众号: StataChina)

相关文章

  • Stata: 我的程序多久能跑完?

    作者:连玉君 (知乎 | 简书 | 码云) Stata 现场培训报名中 导言 多数情况下,我们在 Stata 命令...

  • jupyter notebook 中使用 Stata Kerne

    stata_kernel在jupyter 和stata建立了一座桥梁,可以在jupyter中运行stata程序,显...

  • 教你如何自动筛选显著变量

    以下stata源代码来自于宝器兄的分享,整个过程需要使用stata和Python小程序。其中Python小程序是为...

  • 裸婚能跑多久?

    热播剧《裸婚时代》有幸观看,看过几多感慨,几多惆怅,婚姻原来可以被细节打败,纵然间是8年乃至更久的感情,在那一刻也...

  • macOS能跑iOS程序,iOS 能跑小程序

    更新:[2020-06-23 03:26:21] 注意:查看正文前,请先查看文末的评论,以确认是否有勘误。 本文提...

  • 如何从800米不及格到跑完8000米

    我从来都没有想到过,我能跑完五公里。跑完五公里后,觉得这就是我的极限了,压根没想过我能跑八公里。毕竟高中时候的80...

  • stata自绘莫兰散点图

    在使用stata进行空间关系分析时,moran散点图的绘制往往是不可避免的。stata也提供了比较方面的程序包sp...

  • 阳后多久能跑步

    阳后我还没有跑过步,并不是身体状态差,而是对未知病的敬畏,这个新冠病毒还没有特效药,也就是说它还有未知的东西没...

  • 初入股市的一些感想

    导读 投资是人生的长跑, 不在乎你能跑多快, 而在乎你能跑多久。 初入股市 2019年寒假回校后,大概三月份吧,我...

  • Stata语言编程 | 如何编写Stata程序

    一:问题描述 如何保存stata程序中的命令语? 二:解决方案 第一步:先在命令窗口进行一系列的命令语操作 第二步...

网友评论

    本文标题:Stata: 我的程序多久能跑完?

    本文链接:https://www.haomeiwen.com/subject/srnbhftx.html