【问题标题】:How to find the standard deviation s of simple linear regression coefficients Alpha and Beta in Matlab?Matlab中如何求简单线性回归系数Alpha和Beta的标准差s?
【发布时间】:2011-11-24 16:11:43
【问题描述】:

我有数据,我需要对数据进行线性回归以获得

y=Alpha*x+Beta

Alpha 和 Beta 是回归给出的估计值,polyfit 可以给我那些没有问题的值,但这是一份物理科学报告,我需要给出这些值的误差估计值

我从统计数据中知道,简单线性回归系数存在标准差。

如何在 Matlab 中计算

谢谢

【问题讨论】:

  • 最小二乘线性拟合是一个统计数据,它没有误差线。例如,如果你计算一堆数据点的平均值,它是否有误差线?
  • 看cftool,它可能是你需要的
  • 您需要回归系数Alpha 的标准误,还是要计算y 的置信区间?您可以使用 Statistics Toolbox,还是只能使用 MATLAB?
  • 我说的根本不是误差线,我说的是估计器的 SD
  • @SamRoberts 我正在寻找 Alpha 和 Beta 的 SD,我确实可以访问统计工具箱

标签: matlab statistics linear-regression


【解决方案1】:

regress 命令的第二个输出将为您提供回归系数的 95% 置信区间。这是一个例子:

>> x = [ones(100,1), (1:100)'];
>> alpha = 3; beta = 2;
>> y = x*[alpha; beta]+randn(100,1);
>> [coeffs, coeffints] = regress(y,x);
>> coeffs
coeffs =
       2.9712
       1.9998
>> coeffints
coeffints =
       2.5851       3.3573
       1.9932       2.0064

这里的 alpha 估计为 2.9712,95% 置信区间在 2.5851 和 3.3573 之间,beta 估计为 1.9998,95% 置信区间在 1.9932 和 2.0064 之间。

【讨论】:

  • 系数的标准差在第五个输出,stats。
【解决方案2】:

最简单的解决方案是使用LSCOV

%# create some data
x = 1:10;
y = 3*x+randn(size(x))*0.1;

%# create the design matrix
A = [x(:),ones(length(x),1)];


[u,std_u] = lscov(A,y(:));

u =
       3.0241
    -0.070209
std_u =
     0.018827
      0.11682

【讨论】:

    【解决方案3】:

    或者仅使用 95% 置信区间的长度为 2*1.9654 标准误的关系,因此上述回归示例中的标准误由下式给出:

    st 误差 = (coeffints(:,2)-coeffints(:,1))/(2*1.9654)。

    数字 1.9654 出现是因为回归函数中的正态假设

    【讨论】:

      猜你喜欢
      • 2016-02-28
      • 2018-11-23
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多