首页 > 编程知识 正文

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

时间:2023-05-03 13:50:19 阅读:229754 作者:1099

xsmle gdp gt cz gdzc ersan ur,model(sdm) wmat(Wzhusj) hausman nologWarning: All regressors will be spatially lagged **在使用xsmle命令做hausman检验时,出现了如下错误:**convergence not achievedestimating fixed-effects model to perform Hausman testconvergence 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种问题可能报的是同种错误。![在这里插入图片描述](https://img-blog.csdnimg.cn/2021021209004057.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjI3NjU5,size_16,color_FFFFFF,t_70)问题就在于我的gdp这一列数值过于大,2009年为9000多万,我的单位是元。xsmle采用的是极大似然估计方法,数值太大,这就会导致stata在进行矩阵迭代时出现错误,它没有办法得到最优解。解决办法:将所有的数据取对数,再进行上述命令,就能完美运行。xsmle lngdp lngt lncz ,model(sdm) wmat(Wzhusj) hausman nolog![在这里插入图片描述](https://img-blog.csdnimg.cn/20210212090954366.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjI3NjU5,size_16,color_FFFFFF,t_70)感悟:1.理论永远是一切模型和代码的基础,很多时候我们遇到问题,就是因为理论基础不够。stata的每个命令就像一个黑箱,了解黑箱背后的原理,可能在软件报错时更好地解决错误。有问题先网上搜索,不行stata看help文件,再不行去stata官方论坛。 2.感觉stata目前做空间计量并不是很完善,稍有不慎就会出现错误,而且关于权重矩阵这一块的设定太有"门道”了,不同矩阵结果不同,不同命令可能计算的结果也不同。希望更多的研究论文可以公开代码和数据,不然空间计量回归的结果并不能让人信服,也存在矩阵勿用甚至是造假问题。*****转载请注明出处**

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。