24小时热门版块排行榜    

查看: 1326  |  回复: 12

1135725495

铁杆木虫 (著名写手)

[求助] matlab 已有1人参与

用matlab软件计算置信区间,算出来的结果过大怎么解决???@月只蓝
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
1135725495: 金币+5, ★★★很有帮助 2017-04-11 12:31:43
做参数拟合,首先先看决定系数(或相关系数)的高低,再看其他的。
置信区间跟设置的置信度也有关系,95%的置信度是最常用的,置信度越高,置信区间也越大。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2017-04-11 10:02:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1135725495

铁杆木虫 (著名写手)

引用回帖:
2楼: Originally posted by 月只蓝 at 2017-04-11 10:02:44
做参数拟合,首先先看决定系数(或相关系数)的高低,再看其他的。
置信区间跟设置的置信度也有关系,95%的置信度是最常用的,置信度越高,置信区间也越大。

你好!以下是用matlab计算的结果,使用的ci = nlparci(k,residual,jacobian)函数,置信度为95%。算出来的决定系数在0.9以上呢。算出来的置信区间好大啊,不知问题出在哪?
ci =

   1.0e+03 *

   -0.1666    0.1667
   -0.0000    0.0000
   -0.1562    0.1562
   -6.0471    6.0552



以fmincon()的结果为初值,使用函数lsqnonlin()估计得到的参数值为:
        k1 = 0.05881980024
        k2 = 0.00000000000
        k3 = 0.00396318725
        k4 = 4.05955359944
  The sum of the squares is: 6.0e-06


output =
firstorderopt: 6.1534e-07
       iterations: 1
        funcCount: 10
     cgiterations: 0
        algorithm: 'trust-region-reflective'
          message: [1x425 char]
3楼2017-04-11 11:16:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
3楼: Originally posted by 1135725495 at 2017-04-11 11:16:48
你好!以下是用matlab计算的结果,使用的ci = nlparci(k,residual,jacobian)函数,置信度为95%。算出来的决定系数在0.9以上呢。算出来的置信区间好大啊,不知问题出在哪?
ci =

   1.0e+03 *

   -0.1666     ...

给出具体数据和方程,并指明因变量、自变量、待估计参数
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
4楼2017-04-11 11:22:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1135725495

铁杆木虫 (著名写手)

引用回帖:
4楼: Originally posted by 月只蓝 at 2017-04-11 11:22:39
给出具体数据和方程,并指明因变量、自变量、待估计参数...

下面是程序,方程 r1 =-dc/dt=(k(1)*c^2-0.25*k(2)*(9.404-c)^2)/(1+k(3)*c+0.5*k(4)*(9.404-c))^2,数据是c关于t的方程,因变化量c,自变量是t,待估计参数k(1),k(2),k(3),k(4)
function parafit
%  
% r1 =(k(1)*c^2-0.25*k(2)*(9.404-c)^2)/(1+k(3)*c+0.5*k(4)*(9.404-c))^2;
%
% dCAdt = - r1;
clear all
clc
%        t/min   CA     / mol/L
  Kinetics=[0        8.8599786
3        7.81716904
6        7.3661532
9        7.062404
12        6.82862056
15        6.63696704
18        6.47380764
21        6.33133704
31        5.95301412
41        5.6663802
51        5.43447756
61        5.23953264];
k0 = [0.04539  0.008031  0.07300  3.0230];         % 参数初值
lb = [0 0  0  0];                  % 参数下限
ub =[1  1   1  10];      % 参数上限
x0 = [8.8599786];
yexp = Kinetics;                  
warning off
% 使用函数fmincon()进行参数估计
[k,fval,flag] = fmincon(@ObjFunc7Fmincon,k0,[],[],[],[],lb,ub,[],[],x0,yexp);
fprintf('\n使用函数fmincon()估计得到的参数值为:\n')
fprintf('\tk1 = %.11f\n',k(1))
fprintf('\tk2 = %.11f\n',k(2))
fprintf('\tk3 = %.11f\n',k(3))
fprintf('\tk4 = %.11f\n',k(4))
fprintf('  The sum of the squares is: %.1e\n\n',fval)
k_fm= k;
warning off
% 使用函数lsqnonlin()进行参数估计
[k,resnorm,residual,exitflag,output,lambda, jacobian,] = ...
    lsqnonlin(@ObjFunc7LNL,k0,lb,ub,[],x0,yexp);      
ci = nlparci(k,residual,jacobian)
fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n')
fprintf('\tk1 = %.11f\n',k(1))
fprintf('\tk2 = %.11f\n',k(2))
fprintf('\tk3 = %.11f\n',k(3))
fprintf('\tk4 = %.11f\n',k(4))
fprintf('  The sum of the squares is: %.1e\n\n',resnorm)
k_ls = k;
output
warning off
% 以函数fmincon()估计得到的结果为初值,使用函数lsqnonlin()进行参数估计
k0 = k_fm;
[k,resnorm,residual,exitflag,output,lambda,jacobian] = ...
    lsqnonlin(@ObjFunc7LNL,k0,lb,ub,[],x0,yexp);      
ci = nlparci(k,residual,jacobian)
fprintf('\n\n以fmincon()的结果为初值,使用函数lsqnonlin()估计得到的参数值为:\n')
fprintf('\tk1 = %.11f\n',k(1))
fprintf('\tk2 = %.11f\n',k(2))
fprintf('\tk3 = %.11f\n',k(3))
fprintf('\tk4 = %.11f\n',k(4))
fprintf('  The sum of the squares is: %.1e\n\n',resnorm)
k_fmls = k;
output
tspan = [0  3 6 9 12 15 18 21 31 41 51 61];
[t x] = ode45(@KineticEqs,tspan,x0,[],k_fmls);
figure;
plot(t,x,'o-',t,yexp(:,2),'*');legend('Predictive value','Experimental data')
x


% ------------------------------------------------------------------
function f = ObjFunc7Fmincon(k,x0,yexp)
tspan = [0  3 6 9 12 15 18 21 31 41 51 61];
[t x] = ode45(@KineticEqs,tspan,x0,[],k);   
f =  sum((x-yexp(:,2)).^2) ;
% ------------------------------------------------------------------
function f = ObjFunc7LNL(k,x0,yexp)
tspan = [0  3 6 9 12 15 18 21 31 41 51 61];
[t x] = ode45(@KineticEqs,tspan,x0,[],k);   
f1 = x - yexp(:,2);
f = [f1];
% ------------------------------------------------------------------
function dxdt = KineticEqs(t,x,k)
dxdt=-(k(1)*x^2-0.25*k(2)*(9.404-x)^2)/(1+k(3)*x+0.5*k(4)*(9.404-x))^2;
5楼2017-04-11 12:31:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
1135725495: 金币+5, ★★★很有帮助 2017-04-11 14:46:28
内容已删除
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
6楼2017-04-11 13:48:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1135725495

铁杆木虫 (著名写手)

引用回帖:
6楼: Originally posted by 月只蓝 at 2017-04-11 13:48:24
换一下初值试试:

function parafit
%  
% r1 =(k(1)*c^2-0.25*k(2)*(9.404-c)^2)/(1+k(3)*c+0.5*k(4)*(9.404-c))^2;
%
% dCAdt = - r1;
clear all
clc
%        t/min   CA     / mol/L
  Kinetics= ...

你好,谢谢您的帮助,请问这个初值的选择有什么规律吗?我发现初值差一点,都会造成置信区间的范围很大
7楼2017-04-11 15:17:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
7楼: Originally posted by 1135725495 at 2017-04-11 15:17:47
你好,谢谢您的帮助,请问这个初值的选择有什么规律吗?我发现初值差一点,都会造成置信区间的范围很大...

多试

» 本帖已获得的红花(最新10朵)

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
8楼2017-04-11 15:19:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1135725495

铁杆木虫 (著名写手)

送红花一朵
引用回帖:
8楼: Originally posted by 月只蓝 at 2017-04-11 15:19:29
多试...

你好!按照您说的,我试了一下午到现在还是不行,置信区间的数量级没有变化。还有好几个方程需要计算,也是这种问题,就是换一下c的值。你能不能帮我试一下,或者你有没有什么方法可以找到比较好的初值。谢谢!
9楼2017-04-11 20:49:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
9楼: Originally posted by 1135725495 at 2017-04-11 20:49:19
你好!按照您说的,我试了一下午到现在还是不行,置信区间的数量级没有变化。还有好几个方程需要计算,也是这种问题,就是换一下c的值。你能不能帮我试一下,或者你有没有什么方法可以找到比较好的初值。谢谢!...

待估计参数不超过4个,都可以用5.5版本的1stopt软件计算的结果当初值。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
10楼2017-04-11 21:05:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 1135725495 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 070300化学319求调剂 +7 锦鲤0909 2026-03-17 7/350 2026-03-21 03:46 by JourneyLucky
[考研] 278求调剂 +6 烟火先于春 2026-03-17 6/300 2026-03-21 01:57 by JourneyLucky
[考研] 【考研调剂】化学专业 281分,一志愿四川大学,诚心求调剂 +8 吃吃吃才有意义 2026-03-19 8/400 2026-03-21 00:49 by 刘国森
[考研] 317求调剂 +8 申子申申 2026-03-19 13/650 2026-03-21 00:09 by 刘国森
[考研] 一志愿中海洋材料工程专硕330分求调剂 +8 小材化本科 2026-03-18 8/400 2026-03-20 23:16 by JourneyLucky
[考研] 330求调剂 +4 小材化本科 2026-03-18 4/200 2026-03-20 23:13 by JourneyLucky
[考研] 材料与化工 322求调剂 +4 然11 2026-03-19 4/200 2026-03-20 22:12 by luoyongfeng
[考研] 一志愿华中农业071010,总分320求调剂 +3 困困困困坤坤 2026-03-20 3/150 2026-03-20 20:38 by 学员8dgXkO
[考研] 一志愿北京化工大学0703化学318分,有科研经历,求调剂 +4 一瓶苯甲酸 2026-03-14 4/200 2026-03-20 20:36 by fen_rao
[考研] 环境工程调剂 +9 大可digkids 2026-03-16 9/450 2026-03-20 17:38 by 醉在风里
[考研] 0856调剂,是学校就去 +8 sllhht 2026-03-19 9/450 2026-03-20 14:25 by 无懈可击111
[考研] 085600材料与化工求调剂 +6 绪幸与子 2026-03-17 6/300 2026-03-19 13:27 by houyaoxu
[考研] 328求调剂,英语六级551,有科研经历 +4 生物工程调剂 2026-03-16 12/600 2026-03-19 11:10 by 生物工程调剂
[硕博家园] 湖北工业大学 生命科学与健康学院-课题组招收2026级食品/生物方向硕士 +3 1喜春8 2026-03-17 5/250 2026-03-17 17:18 by ber川cool子
[考研] 考研化学学硕调剂,一志愿985 +4 张vvvv 2026-03-15 6/300 2026-03-17 17:15 by ruiyingmiao
[考研] 290求调剂 +3 p asserby. 2026-03-15 4/200 2026-03-17 16:35 by wangkm
[考研] 一志愿苏州大学材料工程(085601)专硕有科研经历三项国奖两个实用型专利一项省级立项 +6 大火山小火山 2026-03-16 8/400 2026-03-17 15:05 by 无懈可击111
[考研] 材料工程专硕274一志愿211求调剂 +6 薛云鹏 2026-03-15 6/300 2026-03-17 11:05 by 学员h26Tkc
[考研] 考研调剂 +3 淇ya_~ 2026-03-17 5/250 2026-03-17 09:25 by Winj1e
[考研] 一志愿211 0703方向310分求调剂 +3 努力奋斗112 2026-03-15 3/150 2026-03-16 16:44 by houyaoxu
信息提示
请填处理意见