2015-10-04 150 views
-1

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

我想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和稳健标准误差之间的关系?

+2

乐百氏(耐)回归,具有替代最小二乘法,是无关回归稳健标准误差。 –

回答

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放在顶部的固定/拦截,而不是在底部(如塔塔)。或者,您可以使用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

+0

很酷的答案!但我注意到“fitlm”和“hac”仅在2013版本的matlab中引入,如果我使用以前版本的matlab(R2010a),我想我可以使用“regress”替换fitlm,该命令取代hac,是否可用? – johnsonzhj

+0

答复已更新。希望这适合您的需求。 – harre

+0

注意,它的工作原理!我如何在没有更正regstats2的情况下获得SE? – johnsonzhj