全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 统计软件培训班VIP答疑区
1538 3
2010-03-17
连老师:
我手头有个很大的数据库,因为设置虚拟变量的原因,变量很多,有3000个左右,做泊松似然估计不能进行下去,提示需要重新设置matsize,可我已经设置到极限了。请问在set memory 和set matsize上有没有什么技巧,可以解决大数据库运算问题的。我笔记本电脑内存和CPU都在2.4G左右,但设置set memory =1g都无法达到。不知道问题在哪里?



孙林
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-3-19 08:41:26
这个问题不容易解决,关键在于stata是先把数据掉入内存,然后才执行后续运算。
虽然这种处理方式有助于提高运算速度,但对于大型数据就会面临你所言的问题。
我想,你可以尝试如下几种途径:
其一,采用 compress 命令,精简数据的存储。
其二,在为stata分配空间之前(如 set matsize, set memory),先关闭计算机中的其它程序,尤其是不必要的后台程序,这样就可以多留出一些内存空间以便分配给stata。虽然你的内存是2.4G,但由于有大量的后台程序在运行,能够分配给stata的空间自然就非常有限。
其三,你可以尝试在 mata 环境下进行运算,方法如下:
  mata
         stata("stata command")
    end
其四,你或许需要考虑模型的设定,有些虚拟变量可能是不必要的,你看看是否可以精简模型,删除一些多余的虚拟变量。

如果仍然解决不了,我们再商议。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-3-22 03:12:23
连老师:
谢谢你的回复!
现在老板要求我做用panel data 做time-varying importer and exporter fixed effect model. 这需要产生随时间变化的进口国和出口国的虚拟变量。
xi, pre(d1_) i.im*i.year
xi, pre(d2_) i.ex*i.year

where d1_* will be the time-varying importer fixed effects and d2_* will be the same
but for exporters.

我选择了87个进口国和出口国18年的数据,这意味着我会有3000多虚拟变量。
另外我选择的是做似然估计,运算很难收敛!我是不是stata什么内容没学,所以导致这么难做?

不知道这样的情况怎么改善?

非常感谢!


孙林
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-3-22 17:47:26
现在看来不是stata存储空间受限的问题。很可能是你的数据或模型设定的问题。
对于有3000多个虚拟变量的模型而言,采用最大似然估计无法收敛也可以想象。通常对于连续变量,如果样本较大,容易满足正态分布假设,而对于如此多的离散变量,不知这一假设是否能够满足。而且计算出来的似然函数值也可能很不连续,导致MLE的熟练条件很难满足,自然就无法顺利收敛了。

我想,你可以先做一个简单一点的模型,逐步扩展,这样容易找出问题所在。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群