多元回归
以定量地描述某一现象和某些因素之间的函数关系,将各变量的已知值带入回归方程可以求出因变量的估计值,从而可以进行预测(多对一)
转化
非线性转化为线性
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
% matlab模块介绍:
% [beta,r]=nlinfit(x,y,'fun1',beta0);
% beta即所要求的相关系数,
% r为残差
% x为数据的x轴坐标,n*m的矩阵存储,当x有多个时(x1,x2,x3...),每组x为一列,x1为1列,x2为第二列,x3为第三列...组成n*m的矩阵
% y为数据的y轴坐标,以列矩阵的方式存储
% fun1为函数模型的表达式,一般要先确定该模型后在做非线性回回归,该函数一般用单独的.m文件存放,或者自己定义
% beta0为多个相关系数初始值,该系数需要自己猜测,再从初值一步步迭代算出最终系数
%
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
clc
% 数据:
x=[1.5, 4.5, 7.5,10.5,13.5,16.5,19.5,22.5,25.5]';
y=[7.0,4.8,3.6,3.1,2.7,2.5,2.4,2.3,2.2]';
%% 对数模型拟合:f(x) = b(1) + b(2)*log(x)
myfunc = inline('beta(1)+beta(2)*log(x)','beta','x');%三个参数分别为:函数模型(注意需要使用点除和点乘),待定系数,自变量
beta0 = [0.2,0.2]';%待定系数的预估值,可固定不变
% beta为求得的相关系数
beta = nlinfit(x,y,myfunc,beta0);
figure;
plot(x,y,'.');
hold on%保证同时显示
x = 0:0.01:8;
y = beta(1)+beta(2)*log(x);
plot(x,y);
title('对数模型拟合');
%% 指数模型拟合:f(x) = b1*x^b2;
% myfunc = inline('beta(1)*x.^beta(2)','beta','x');%三个参数分别为:函数模型(注意需要使用点除和点乘),待定系数,自变量
%
% beta0 = [0.2,0.2]';%待定系数的预估值,可固定不变
%
% % beta为求得的相关系数
% beta = nlinfit(x,y,myfunc,beta0);
%
% figure;
% plot(x,y,'.');
% hold on%保证同时显示
%
% x = 0:0.01:8;
% y = beta(1)*x.^beta(2);
%
% plot(x,y);
% title('指数模型拟合');
细节
1.用sas和spss做回归方程和回归系数的检验
2.注意共线性问题即解决,详见https://zhuanlan.zhihu.com/p/24263575
步骤
(1)根据已知条件的数据,通过预处理得出图像的大致趋势或者数据之间的大致关系;
(2)选取适当的回归方程;
(3)拟合回归参数;
(4)回归方程显著性检验及回归系数显著性检验
(5)预测