用途:做预测
局限:参数为线性即参数仅以一次方出现,且不能以复合的形式出现,比如y=a/(x-b)^2
y=asin(b+cx),a^2不是参数线性。
最小二乘几何解释:
问:为何拟合时不使用绝对值,三次方,四次方模型
绝对值:不容易求导,计算复杂
四次方:避免极端数据对拟合曲线的影响,最小二乘法得到的结果和MLE极大似然估计一致
三次方(奇数次方):误差正负相抵
最小二乘法推导:
注意所选用的函数为线性函数
评价拟合好坏:
始终注意所选函数为线性函数
拓展SST=SSE+SSR的证明:
简单实现代码:
clear;clc
load data1; % 载入已有数据
plot(x,y,'o');
xlabel('x值');
ylabel('y值');
n = size(x,1);
k = (n*sum(x.*y)-sum(x)*sum(y))/(n*sum(x.*x)-sum(x)*sum(x))
b = (sum(x.*x)*sum(y)-sum(x)*sum(x.*y))/(n*sum(x.*x)-sum(x)*sum(x))
hold on % 继续在之前的图形上来画图形
grid on % 显示网格线
f=@(x) k*x+b;
fplot(f,[2.5,7]);
legend('样本数据','拟合函数','location','SouthEast')
y_hat = k*x+b; % y的拟合值
SSR = sum((y_hat-mean(y)).^2) % 回归平方和
SSE = sum((y_hat-y).^2) % 误差平方和
SST = sum((y-mean(y)).^2) % 总体平方和
SST-SSE-SSR % 5.6843e-14 = 5.6843*10^-14 matlab浮点数计算的一个误差
R_2 = SSR / SST
运行结果:
建模小白,望大佬指点