![]() |
[求助]用nlinfit回归参数计算结果中的误差问题~~~
刚刚用matlab不久 请各位高手指教啊~~~
我在回归几个参数的时候, 用nlinfit函数进行回归, 计算之后返回的结果是:参数值、y计算值、以及残差r。但是残差r值很奇怪,是从小到大排列的…………第一个r大概是0.001,到最后一个都已经增大到0.3多了………… 不知道怎么会这样,请高手指导一下啊 ~~ 小妹不胜感激!!! 谢谢大家!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
回复: [求助]用nlinfit回归参数计算结果中的误差问题~~~
很晚了才看到:confused: 首先第二个输出参数才是残差,第三个输出参数是Jacobian矩阵,它们都是估计预测误差需要的数据,关于这个雅可比矩阵是干什么的,我也不太清楚,但作一般的问题好像用不到它。至于你说的从小到大排列的输出量是有点奇怪,不行你把程序贴上来帮你看看。
|
回复: [求助]用nlinfit回归参数计算结果中的误差问题~~~
谢谢~~~可是我程序超级长的……能不能给个联系方式我传给你?Email之类的~~~
还有,我只要它输出了两个参数,就是参数值和残差。在程序里面又要求将计算了的参数带入求出y值。不过结果就比较奇怪了~~~ |
回复: [求助]用nlinfit回归参数计算结果中的误差问题~~~
若能将数据(x,y)置上,可以看看问题所在。nlinfit作非线性回归,本不要很长程序,但须给定合适的初值(beta0),否则结果可能离最优结果相距甚远。至于其中的Jacobian矩阵,是所估参数的标准化的方差协方差阵,即对角线元素是相应参数标准化的方差,非对角线元素是相应(两个)参数的标准化的协方差。所谓标准化是将离回归方差视为1。
|
回复: [求助]用nlinfit回归参数计算结果中的误差问题~~~
这个是我程序的第一个部分:
m = zeros(1); x=[0.7219 0.0058 0.2723 0.7221 0.0049 0.2730 0.7134 0.0039 0.2827 0.7327 0.0029 0.2644 0.7244 0.0022 0.2734 0.7247 0.0010 0.2473]; for i=1:1:6 n(i)=(x(i,2)/853.92)/(x(i,1)/44.01+x(i,2)/853.92+x(i,3)/89.93); end n n1 = (x(:,2)./853.92)./(x(:,1)./44.01+x(:,2)./853.92+x(:,3)./89.93); t0 = [0 0 0 0 0 0]; zx = zeros(1); %y = Obj(t0, zx) [t,r]=nlinfit(x,n1,@Obj,t0) t=t' 就是回归参数 t,这里面给了初值了。 这个里面 t 是另一个表达式 y 中的参数, 而上面程序里面的 n1 是实验值, y 是计算值。 也就是说,我要把 y 的值与这个程序里面的 n1 值用nlinfit函数运算之后拟合出参数 t 所以我后面还有一个很长的程序 Obj,是关于 t 和 y 的计算 那个程序Obj在上面调用了~ 然后结果是这个样子的: 实验值: n1 = 1.0e-003 * 0.3494 0.2950 0.2359 0.1733 0.1321 0.0609 计算值: y = 1.0e-003 * 0.0001 0.0008 0.0029 0.0206 0.0261 0.1236 残差: r = 1.0e-003 * 0.3493 0.2943 0.2330 0.1527 0.1060 -0.0627 我个人认为既然是拟合回归,那么 计算值y 和 实验值 n1 应该很接近吧。 但是实际结果却是 n1 值与 r值很接近…… y的值也很奇怪…… 请指教一下 这个到底是怎么回事啊!!! 我刚刚开始学习matlab 还有很多基本的概念不懂 这个是不是我把什么理解错了??? 非常感谢~~~ |
所有时间均为北京时间。现在的时间是 03:06。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.