1

我需要将回归结果矩阵从 Stata 导出到 MATLAB。我尝试使用 Stata 命令matwrite但没有成功(我收到unrecognized command错误消息)。这是尝试:

    ...
    *Regression 1
    reg invlrevcrp_CAm071 lacres_CAm071 lrainm07 lrainm07sq ///
    lannxt lannxtsq lrlanxtsq pkgamz if invlrevcrp_CAm071~=.
    reg lrevcrp_CAm071 lacres_CAm071 lrainm07 lrainm07sq ///
    lannxt lannxtsq lrlanxtsq lpkgamz
    * Store results
    mat coef=get(_b)
    *Export to matlab
    matwrite using "Z:\Thesis\data needed for 2007\matlabfile", ///
    mat(coef) replace
    ...

我使用xml_tab将矩阵导出到 Excel 的 Stata 取得了更大的成功,然后我可以将其导入 MATLAB。但是,xml_tab给了我太多信息。我要导出的矩阵只是两个回归的估计系数,没有标签。 xml_tab导出与回归相关的所有内容——t 统计量、p 值、95% conf。间隔等,包括标签。这是我使用这种方法的代码:

     *===============================
     * Regressions
     *===============================
     *Regression 1
     reg invlrevcrp_CAm071 lacres_CAm071 lrainm07 lrainm07sq ///
     lannxt lannxtsq lrlanxtsq pkgamz if invlrevcrp_CAm071~=.
     reg lrevcrp_CAm071 lacres_CAm071 lrainm07 lrainm07sq ///
     lannxt lannxtsq lrlanxtsq lpkgamz
     * Store results
     estimates store revCA1
     *Regression 2
     reg lcostcrp_CAm071 lacres_CAm071 lrainm07 lrainm07sq ///
     lannxt lannit lannxtsq lannitsq lpkgf3 lwage if costcrp_CAm071>0
     *Store results
     estimates store cosCA1
     *Export to excel
     xml_tab revCA1 cosCA1, ///
     save("Z:\Thesis\data needed for 2007\RegCoefs") replace

我正在浏览xml_tab帮助文件以查看是否可以得到我想要的东西,但是任何人都可以提供帮助吗matwritexml_tab

4

2 回答 2

5

为此,我编写了一个 .ado 程序,名为 mat2txt2。你可以在这里找到它: http ://code.google.com/p/kk-adofiles/source/browse/#hg%2Fm 我编写了这个程序来扩展 Ben Jann 和 M Blasnik 的 mat2txt.ado 的功能。

该程序会将矩阵导出到分隔的文本文件(例如,逗号分隔的 .csv 文件或制表符分隔的文件)。从那里,您可以轻松地将数据提取到 Excel 或 Matlab 中。

于 2012-04-02T11:53:58.823 回答
3

要将矩阵写入预先存在的 Excel 文件,请查看putexcel.

putexcel除非您告诉它,否则不会导出矩阵的行名和列名。

help putexcel

简而言之,要导出一个 Stata 矩阵:

必要时更改目录(示例)

cd ""Z:\Thesis\data needed for 2007\"

设置putexcel为调用您的 Excel 文件:putexcel允许您在 Excel 文件中指定要修改的工作表,如果您已经编写了 Excel 工作表来转换结果,这将派上用场。如果您这样做,请务必调用该modify选项,而不是replace:replace将覆盖您 Excel 文件中的任何预先存在的工作

putexcel set RegCoefs.xlsx, modify sheet(sheetname)

下一次调用putexcel,指定您希望将矩阵放置在哪个单元格

putexcel A1 = matrix(revCA1)

如果成功,Stata 应返回以下消息:

file RegCoefs.xlsx saved
于 2016-06-23T03:55:03.480 回答