Matlab:回归分析(2)

时间:2023-03-08 21:37:51

Matlab:回归分析(2)

方法一:直接用多元二项式回归

 %数据输入
x1 = [ ];
x2 = [ ];
%多元二项式回归函数
y = [ ];
X = [x1' x2'];
Y = y';
rstool(X, Y, 'purequadratic', 0.05);%使用纯二次模型

结果:

Matlab:回归分析(2)

Matlab:回归分析(2)

方法二:化为多元线性回归

 %数据输入
x1 = [ ];
x2 = [ ];
y = [ ];
%多元线性回归
X = [ones(, ), x1', x2', (x1.^)' (x2.^2)'];
Y = y';
[b, bint, r, rint, states] = regress(Y, X, 0.05);
b, states

Matlab:回归分析(2)

 %数据输入
x = [ ];
y = [13.2 15.1 16.4 17.1 17.9 18.7 19.6 21.2 22.5 24.3];
%X = [ones(,), x'];
%Y = y';
%[b, bint, r, rint, states] = regress(Y, X, 0.05);
%rcoplot(r, rint)
[P, S] = polyfit(x, y, );
[Y, DELTA] = polyconf(P, , S, 0.05);
Y
[Y-DELTA, Y+DELTA]

结果:
Y =

18.3287

ans =

17.7891   18.8682

Matlab:回归分析(2)

 x = [          ];
y = [0.6 2.0 4.4 7.5 11.8 17.1 23.3 31.2 39.6 49.7 61.7];
%方法一:二次多项式回归
[P, S] = polyfit(x, y, );
P
%方法二:转化为多元线性回归
X = [ones(, ), x', (x.^2)'];
Y = y';
b = regress(Y, X, 0.05);
b

结果:
P =

0.1403    0.1971    1.0105

b =

1.0105     0.1971     0.1403

Matlab:回归分析(2)

 function f = Q3fun(beta, x)
x1 = x(:,);
x2 = x(:,);
x3 = x(:,);
f = (beta().*x2 - x3./beta()) ./ ( + beta().*x1 + beta().*x2 + beta().*x3);
 %数据输入
x1 = [ ];
x2 = [ ];
x3 = [ ];
y = [8.55 3.79 4.82 0.02 2.75 14.39 2.54 4.35 13.00 8.50 0.05 11.32 3.13]; X = [x1', x2', x3'];
Y = y';
%参考值
beta0 = [ 0.05 0.02 0.1 ];
%非线性回归函数
[beta, r, J] = nlinfit(X, Y, 'Q3fun', beta0);
beta
%预测及估计
nlintool(X, Y, 'Q3fun', beta0, 0.05)

结果:
beta =

1.2526    0.0628    0.0400    0.1124    1.1914

置信区间

-0.746742266632702    3.25193260901551
-0.0376762702432533  0.163228825666061
-0.0311725427348701  0.111268700470180
-0.0608975612723978  0.285728748651990
-0.738086110268459    3.12082296226925

Matlab:回归分析(2)