线性规划问题的解法很多,大同小异,个人觉得没必要完全掌握。视频太长不好学,matlab自己编码难度大,这里的线性规划代码应对一般的题来说应该够了,各位可以用matlab跑一跑。
y = β + β x 1+ β x2
x=[ones(10,1),x1,x2];
解 数据的散点图明显地呈现两端低中间高的形状,所以应拟合一条二次曲线。
选用二次模型
1 0
2
y = a2 x + a x + a (43)
编写如下程序:
x0=17:2:29;x0=[x0,x0];
y0=[20.48 25.13 26.15 30.0 26.1 20.3 19.35...
24.35 28.11 26.3 31.4 26.92 25.7 21.3];
-245-
[p,s]=polyfit(x0,y0,2); p
得到
p =-0.2003 8.9782 -72.2150
即 0.2003 a2 = − , 8.9782 a1 = ,a0 = −72.2150。
[y,delta]=polyconf(p,x0,s);y
polytool(x0,y0,2)
可以得到一个如图1的交互式画面,在画面中绿色曲线为拟合
曲线,它两侧的红线是 y 的置信区间。你可以用鼠标移动图中的十字线来改变图下方
的 x 值,也可以在窗口内输入,左边就给出 y 的预测值及其置信区间。通过左下方的
Export下拉式菜单,可以输出回归系数等。这个命令的用法与下面将介绍的rstool相似。
最小二乘法拟合一个多元回归模型
对8个自变量进行F检验以剔除相关性弱的自变量:
clc,clear
load data.txt %表中的数据按照原来的排列存放在纯文本文件data.txt中
[n,m]=size(data);m=m-1;
x=[ones(38,1),data(:,1:8)]; y=data(:,9);
[b,bint,r,rint,stats]=regress(y,x) %stats(4)返回的是残差的样本方差
r2=stats(1) %提出复判定系数
ad_r2=1-(1-r2)*(n-1)/(n-m-1) %计算调整复判断系数
f=stats(2) %提出F统计量
tm=inv(x'*x); %计算X'*X的逆矩阵
tm=diag(tm); %提出逆矩阵的对角线元素
rmse=sqrt(stats(4)) %计算剩余标准差(残差的样本标准差)
t=b./sqrt(tm)/rmse %求t统计量的值
clc,clear
load data.txt %表中的数据按照原来的排列存放在纯文本文件data.txt中
[n,m]=size(data);m=m-1;
x=[ones(38,1),data(:,1:8)]; y=data(:,9);
[b,bint,r,rint,stats]=regress(y,x) %stats(4)返回的是残差的样本方差
r2=stats(1) %提出复判定系数
ad_r2=1-(1-r2)*(n-1)/(n-m-1) %计算调整复判断系数
f=stats(2) %提出F统计量
tm=inv(x'*x); %计算X'*X的逆矩阵
tm=diag(tm); %提出逆矩阵的对角线元素
rmse=sqrt(stats(4)) %计算剩余标准差(残差的样本标准差)
t=b./sqrt(tm)/rmse %求t统计量的值
clc,clear
load data.txt %表中的数据按照原来的排列存放在纯文本文件data.txt中
[n,m]=size(data);m=m-1;
x=[ones(38,1),data(:,1:8)]; y=data(:,9);
[b,bint,r,rint,stats]=regress(y,x) %stats(4)返回的是残差的样本方差
r2=stats(1) %提出复判定系数
ad_r2=1-(1-r2)*(n-1)/(n-m-1) %计算调整复判断系数
f=stats(2) %提出F统计量
tm=inv(x'*x); %计算X'*X的逆矩阵
tm=diag(tm); %提出逆矩阵的对角线元素
rmse=sqrt(stats(4)) %计算剩余标准差(残差的样本标准差)
t=b./sqrt(tm)/rmse %求t统计量的值
附加步骤:
n 为样本容量, p 为随机变量个数。给定显著水平α ,可查表得到临界值 F (1,n − p) α 。决定准则为,对于统计量的值
F :
若 F > F (1, n − p) α ,则否定 H0 ,说明 i x 与 j x 之间存在显著的净相关关系;
若 F ≤ F (1, n − p) α ,则肯定 H0 ,说明 i x 与 j x 之间不存在显著的净相关关系。
主成分估计