马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
先定义了一个函数文件huaxue.m:
function yhat=huaxue(beta,x);
yhat=(beta(4)*x(2)-x(3)/beta(5))./(1+beta(1)*x(1)+beta(2)*x(2)+beta(3)*x(3));
然后,用nlinfit计算回归系数,用nlparci计算回归系数的置信区间,用nlpredci计算预测值
即其置信区间,编程如下:(在Untitled15.m中)
clc,clear
x0=[1 8.55 470 300 10
2 3.79 285 80 10
3 4.82 470 300 120
4 0.02 470 80 120
5 2.75 470 80 10
6 14.39 100 190 10
7 2.54 100 80 65
8 4.35 470 190 65
9 13.00 100 300 54
10 8.50 100 300 120
11 0.05 100 80 120
12 11.32 285 300 10
13 3.12 285 190 120];
x=x0(:,3:5);
y=x0(:,2);
beta=[0.1,0.05,0.02,1,2]; %回归系数的初值
[betahat,f,j]=nlinfit(x,y, ' huaxue ' ,beta); % f,j是下面命令用的信息
betaci=nlparci(betahat,f,j);
betaa=[betaa,betaci] %回归系数及其置信区间
[yhat,delta]=nlpredci( ' huaxue ' ,x,betahat,f,j)%y的预测值及其置信区间半径,置信区间为yhat ±delta。
运行时报错:
??? Error using ==> nlinfit
FUN should return a column vector of the same length as Y.
Error in ==> D:\matlab\work\Untitled15.m
On line 5 ==> [betahat,f,j]=nlinfit(x,y,'huaxue',beta); % f,j是下面命令用的信息
各位有知道为什么的吗?我觉得维数没有错呀。
[ 本帖最后由 eight 于 2007-7-23 12:47 编辑 ] |