stata中使用xsmle命令做空间面板数据hausman检验出现3200错误的解决办法

在使用Stata进行xsmle命令进行Hausman检验时遇到未收敛问题,错误代码3200。经过研究发现,问题并非矩阵设置错误,而是由于数据中gdp数值过大导致极大似然估计无法收敛。解决方案是对所有数据取对数,重新运行命令即可成功。此经验提醒我们理解模型背后理论的重要性,并指出Stata在空间计量方面的不完善性和权重矩阵设定的复杂性。
摘要由CSDN通过智能技术生成

xsmle gdp gt cz gdzc ersan ur,model(sdm) wmat(Wzhusj) hausman nolog
Warning: All regressors will be spatially lagged 
在使用xsmle命令做hausman检验时,出现了如下错误

convergence not achieved
estimating fixed-effects model to perform Hausman test
convergence not achieved
     _xsmle_hausman_ml():  3200  conformability error
                 <istmt>:     -  function returned error

起初百思不得其解,翻阅经管之家以及stata官方论坛很多帖子,
发现很多人都遇到了这个问题,但是都没有一个合理的解决方案。
总结一下可能导致这串错误代码的原因:
1.诚如错误代码3200所说,矩阵的维数和变量的id数不匹配
2.xsmle用的矩阵应该是n×n的截面数据的矩阵,xsmle会自动匹配成面板数据所需
的矩阵
但是大部分朋友的矩阵维数和id数是匹配的,但运行xsmle命令还是会出错
我的情况也属于这个,我尝试了各种生成矩阵的方法,spwmatric,spmat,spmatric,
从geoda软件导入,在除夕夜弄了快6个小时,最终都无疾而终,万念俱灰之时,突
然想到有位老师在讲空间计量时提到过矩阵迭代求特征值的时候有可能得不到解。
哦!原来问题出在 convergence not achieved (未收敛)
原来我一直被3200错误误导,以为是我的矩阵设置错误,其实出错的并不是矩阵,
而是我的数据。stata的报错比较宽泛,n种问题可能报的是同种错误。


问题就在于我的gdp这一列数值过于大,2009年为9000多万,我的单位是元。
xsmle采用的是极大似然估计方法,数值太大,这就会导致stata在进行矩阵迭代时
出现错误,它没有办法得到最优解。
解决办法:将所有的数据取对数,再进行上述命令,就能完美运行。

xsmle lngdp lngt lncz ,model(sdm) wmat(Wzhusj) hausman nolog

感悟:1.理论永远是一切模型和代码的基础,很多时候我们遇到问题,就是因为
理论基础不够。stata的每个命令就像一个黑箱,了解黑箱背后的原理,可能在软
件报错时更好地解决错误。有问题先网上搜索,不行stata看help文件,再不行
去stata官方论坛。
     2.感觉stata目前做空间计量并不是很完善,稍有不慎就会出现错误,而且
关于权重矩阵这一块的设定太有"门道”了,不同矩阵结果不同,不同命令可能计算
的结果也不同。希望更多的研究论文可以公开代码和数据,不然空间计量回归的结果
并不能让人信服,也存在矩阵勿用甚至是造假问题。

**转载请注明出处**

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值