用于Stata的稳健SE的MATLAB等效命令

时间:2015-10-04 15:01:08

标签: matlab stata

Stata中线性回归中稳健标准误差的MATLAB等效命令是什么(例如reg y x, robust)?

我猜HAC可能就是答案(http://www.mathworks.com/help/econ/hac.html)。

任何人都可以展示一个简单的MATLAB示例,它可以生成与下面列出的Stata代码生成的结果相同的结果。

webuse iris, clear
reg  seplen sepwid
reg  seplen sepwid, r

在MATLAB中,我发现了robustfit(http://www.mathworks.com/help/stats/robustfit.html),但它不应该是等效的命令,因为它会影响估计的β值的值,这是robustfit和鲁棒标准误差之间的关系?

1 个答案:

答案 0 :(得分:3)

正如Nick Cox在评论中所说,你不会使用 robustfit 。相反,您将使用 hac 分别估计强大的标准错误,如下面的一小段代码。使用 fitlm 命令找到系数估计值。

% Load/define data
load fisheriris;
sepwid = meas(:,2);
seplen = meas(:,1);

% Estimates
fit = fitlm(sepwid,seplen);
[~,SE,coef] = hac(fit,'type','HC','weights','HC1','display','off');

% Output non-robust
fit.Coefficients(:,1:2)

% Output Robust
[coef SE] 

请注意,MATLAB将常量/截距放在顶部而不是底部(如Stata)。或者你可以使用Oleg Komarov(*)的 regstats2 ,它也可以给你p值等。

% Estimates
fit2 = regstats2(seplen,sepwid,'linear','all');

% Output
[fit2.beta fit2.hc1.se]

(*)http://www.mathworks.com/matlabcentral/fileexchange/26169-regstats2