跳转至

Matlab 简单线性回归(最小二乘法)

\(y=kx\)

注意!X,Y必须是同维度列向量

Matlab
1
2
3
X=[1,2,3,4,5]';
Y=[3.9,8.1,12.0,15.9,20.2]';
k=X\Y

其中XY分别对应\(y=kx\)中的\(x\)\(y\)k对应\(k\)

\为左除

\(y=kx+b\)

Matlab
1
2
3
4
5
X=[1,2,3,4,5]';
Y=[3.9,8.1,12.0,15.9,20.2]';
res=[ones(length(X),1) X]\Y;
k=res(2)
b=res(1)

k对应\(k\)b对应\(b\)

计算\(R^2\)

\[R^2=1-\frac{\sum_{i=1}^n(y_i-\hat{y}_i)^2}{\sum_{i=1}^n(y_i-\bar{y})^2}\]

其中\(\hat y\)\(y\)的计算值,即

\[\hat{y}_i=kx_i+b\]

\(\bar y\)\(y\)的平均值,即

\[\bar y=\frac{1}{n}\sum_{i=1}^n y_i\]

\(y=kx+b\)为例

Matlab
1
2
YCalc=k*X+b;
Rsq = 1 - sum((Y - YCalc).^2)/sum((Y - mean(Y)).^2)

Rsq即为\(R^2\)

参考

线性回归 Matlab

一元线性回归计算器

评论