1. MATLAB 线性拟合直线计算斜率 示例
rkm = [1:2:11];
phase1 = [360:-30:210]+20*rand(size(rkm)); % 因变量y
phase2 = [300:-30:150]+20*rand(size(rkm)); % 因变量y
col = {'r';'b';'g'};
% 先计算拟合直线 使用 ployfit计算线性系数
rkmB = [rkm(1):0.1:rkm(end)];
Po1 = polyfit(rkm,phase1,1) % 斜率与截距
P1 = polyval(Po1,rkmB); % 计算细化x轴坐标rkmB处的拟合值
Po2 = polyfit(rkm,phase2,1) % 斜率与截距
P2 = polyval(Po2,rkmB); % 计算细化x轴坐标rkmB处的拟合值
figure()
hold on; grid on
box on
rkmB(1:20:101)-rkm
plot(rkmB,P1,'-o','color',col{1},'markerindice',1:20:101)
plot(rkmB,P2,'-o','color',col{2},'markerindice',1:20:101)
% 注意上述markerindice 属性的设置,其设置将影响legend的设置
xlabel('rkm')
ylabel('deg (\circ)')
title('D_2 phase lag')
legend({'M_2';'N_2'},'orientation','horizontal')
legend('boxoff')
saveas(gcf,'Phase lag demo_obs_fit_0.fig')
2. MATLAB线性拟合中文文档
以下所有图片来源于MATLAB官方文档截图,仅用于学习与非盈利行为,若有侵权请及时联系博主删除。
决定系数 R2。R2 用于测量模型能够在多大程度上预测数据,其值介于 0 和 1 之间。R2 的值越高,模型预测数据的准确性越高。
决定系数 R2。R2 用于测量模型能够在多大程度上预测数据,其值介于 0 和 1 之间。R2 的值越高,模型预测数据的准确性越高。
R2,决定系数 交互式拟合 - MATLAB & Simulink - MathWorks 中国https://ww2.mathworks.cn/help/matlab/data_analysis/interactive-fitting.html#bswij4t
您可通过计算决定系数或 R 方 (R2),确定多项式回归预测您的观测数据的能力。R2 统计量的范围介于 0 至 1 之间,它用来度量自变量在预测因变量的值方面的可用度:
-
接近 0 的 R2 值表示该拟合并不明显优于模型
y = constant
。 -
接近 1 的 R2 表示自变量能够解释因变量的大部分变异。
R2 是根据残差计算的,残差是因变量的观测值与其拟合预测值之间的有符号差值。
residuals = yobserved - yfitted |
rsq = 0.8707
这表明,线性方程 1.5229 * x -2.1911
可预测变量 y
中方差的 87%。
计算多项式回归的调整 R2
您通常可通过拟合更高次多项式,减少模型中的残差。当您添加更多项时,会增加决定系数 R2。您可获得更接近数据的拟合,但代价是模型更为复杂,R2 无法解释。因而,作为对该统计量的改进,调整 R2 中包括了一项对模型中项数的罚值。因此,调整 R2 更适合比较不同的模型对同一数据的拟合程度。调整 R2 定义如下:
R2adjusted = 1 - (SSresid / SStotal)*((n-1)/(n-d-1))