Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Statistics 用lsqcurvefit估计拟合参数的不确定性_Statistics_Matlab_Curve Fitting_Uncertainty - Fatal编程技术网

Statistics 用lsqcurvefit估计拟合参数的不确定性

Statistics 用lsqcurvefit估计拟合参数的不确定性,statistics,matlab,curve-fitting,uncertainty,Statistics,Matlab,Curve Fitting,Uncertainty,我正在使用lsqcurvefit来拟合这样的函数a.*x.^b,它将为我提供a、b和resnorm。 我想知道a和b的不确定性怎么可能存在。有可能这样使用“雅可比”吗 [x,resnorm,residual,exitflag,output,jacobian] = lsqcurvefit (...) 然后我将有一个两列的数组,我认为这与这个事实有关,我有两个拟合参数!但我不知道如何解释它,也不知道如何使用它们来估计a和b的误差。因此,似乎最好使用统计工具箱中的函数来实现这一点。有关如何获取拟合参

我正在使用
lsqcurvefit
来拟合这样的函数a.*x.^b,它将为我提供a、b和
resnorm
。 我想知道a和b的不确定性怎么可能存在。有可能这样使用“雅可比”吗

[x,resnorm,residual,exitflag,output,jacobian] = lsqcurvefit (...)

然后我将有一个两列的数组,我认为这与这个事实有关,我有两个拟合参数!但我不知道如何解释它,也不知道如何使用它们来估计a和b的误差。

因此,似乎最好使用统计工具箱中的函数来实现这一点。有关如何获取拟合参数的标准偏差的示例,请参见和此,但前提是您可以访问Matlab的统计工具箱

如果您没有工具箱,那么从上的wikipedia文章中,您可以使用以下公式找到坡度参数的标准错误:

大部分分子都是resnorm,分母很容易找到:

sum((X - mean(X)).^2)
其中,
X
是用于找到拟合的所有输入自变量的向量

因此,您可以通过获取日志将拟合转换为线性拟合,因此使用
Yln=log(Y)
Xln=log(X)
获得新模型:

Yln = b*ln(a) + b*Xln

并使用简单线性回归参数的标准误差公式。

resnorm有什么问题?你所说的数学上的不确定性是什么意思?您在
残差
输出中返回了所有错误,您可以轻松地使用这些错误获得标准错误,例如。。。你到底在数学上寻找什么。也许您想进行t检验,以确定
a
b
是否与0有显著差异?我认为残差显示的是y的误差,而不是参数a和b的误差,我希望a和b的σ是在拟合函数ydata=a.*xdata之后获得的。^b;或者我可以说a,b是x(1),x(2)。我想用不确定度或σ来表示它们,而不是y,据我所知resnorm=sum(y-ycalculated)^2,残差是y-ycalculated。我仍然不知道如何利用雅可比?你对这个链接的想法是什么?这个链接向你展示了如何找到参数的协方差矩阵,但我不确定如何从中得到每个参数的标准误差。很抱歉从现在开始,你剩下的问题是数学,而不是编程。也许可以在数学/统计论坛上提问?我在这里找到了我问题的答案,这正是我想从残差和雅可比矩阵计算每个参数的误差。