请根据之前的例子,给出5. 调整后的决定系数 (Adjusted R²)、6. 赤池信息准则 (AIC, Akaike Information Criterion)、7. 贝叶斯信息准则 (BIC, Bayesian Information Criterion)、8. 平均绝对误差 (MAE, Mean Absolute Error)、9. 最大绝对误差 (Max Error)的matlab代码

以下是基于之前的例子,计算 调整后的决定系数 (Adjusted R²)赤池信息准则 (AIC)贝叶斯信息准则 (BIC)平均绝对误差 (MAE)最大绝对误差 (Max Error) 的 MATLAB 代码:


5. 调整后的决定系数 (Adjusted R²)

matlab
复制
% 计算调整后的决定系数
n = length(y_nonlinear);  % 样本数量
p = 2;  % 模型参数数量 (a 和 b)
R2 = 1 - (sum((y_nonlinear - y_fit).^2) / sum((y_nonlinear - mean(y_nonlinear)).^2));
adjusted_R2 = 1 - (1 - R2) * (n - 1) / (n - p - 1);

fprintf('调整后的决定系数 (Adjusted R²): %.4f\n', adjusted_R2);

6. 赤池信息准则 (AIC, Akaike Information Criterion)

matlab
复制
% 计算赤池信息准则 (AIC)
k = 2;  % 模型参数数量 (a 和 b)
RSS = sum((y_nonlinear - y_fit).^2);  % 残差平方和
AIC = n * log(RSS / n) + 2 * k;

fprintf('赤池信息准则 (AIC): %.4f\n', AIC);

7. 贝叶斯信息准则 (BIC, Bayesian Information Criterion)

matlab
复制
% 计算贝叶斯信息准则 (BIC)
BIC = n * log(RSS / n) + k * log(n);

fprintf('贝叶斯信息准则 (BIC): %.4f\n', BIC);

8. 平均绝对误差 (MAE, Mean Absolute Error)

matlab
复制
% 计算平均绝对误差 (MAE)
MAE = mean(abs(y_nonlinear - y_fit));

fprintf('平均绝对误差 (MAE): %.4f\n', MAE);

9. 最大绝对误差 (Max Error)

matlab
复制
% 计算最大绝对误差 (Max Error)
max_error = max(abs(y_nonlinear - y_fit));

fprintf('最大绝对误差 (Max Error): %.4f\n', max_error);

完整代码整合

以下是上述所有指标的完整代码整合:

matlab
复制
% 5. 调整后的决定系数 (Adjusted R²)
n = length(y_nonlinear);  % 样本数量
p = 2;  % 模型参数数量 (a 和 b)
R2 = 1 - (sum((y_nonlinear - y_fit).^2) / sum((y_nonlinear - mean(y_nonlinear)).^2));
adjusted_R2 = 1 - (1 - R2) * (n - 1) / (n - p - 1);
fprintf('调整后的决定系数 (Adjusted R²): %.4f\n', adjusted_R2);

% 6. 赤池信息准则 (AIC)
k = 2;  % 模型参数数量 (a 和 b)
RSS = sum((y_nonlinear - y_fit).^2);  % 残差平方和
AIC = n * log(RSS / n) + 2 * k;
fprintf('赤池信息准则 (AIC): %.4f\n', AIC);

% 7. 贝叶斯信息准则 (BIC)
BIC = n * log(RSS / n) + k * log(n);
fprintf('贝叶斯信息准则 (BIC): %.4f\n', BIC);

% 8. 平均绝对误差 (MAE)
MAE = mean(abs(y_nonlinear - y_fit));
fprintf('平均绝对误差 (MAE): %.4f\n', MAE);

% 9. 最大绝对误差 (Max Error)
max_error = max(abs(y_nonlinear - y_fit));
fprintf('最大绝对误差 (Max Error): %.4f\n', max_error);

示例输出

假设拟合结果为:

复制
调整后的决定系数 (Adjusted R²): 0.9823
赤池信息准则 (AIC): 123.4567
贝叶斯信息准则 (BIC): 128.9102
平均绝对误差 (MAE): 2.3456
最大绝对误差 (Max Error): 5.6789

代码说明

  1. 调整后的决定系数 (Adjusted R²)

    • 考虑了模型参数数量,避免过度拟合。

    • 公式:Adjusted R2=1(1R2)(n1)np1\text{Adjusted } R^2 = 1 – \frac{(1 – R^2)(n – 1)}{n – p – 1}

  2. 赤池信息准则 (AIC)

    • 衡量模型拟合效果和复杂度的平衡。

    • 公式:AIC=nln(RSS/n)+2k\text{AIC} = n \ln(\text{RSS}/n) + 2k

  3. 贝叶斯信息准则 (BIC)

    • 类似于 AIC,但对模型复杂度的惩罚更强。

    • 公式:BIC=nln(RSS/n)+kln(n)\text{BIC} = n \ln(\text{RSS}/n) + k \ln(n)

  4. 平均绝对误差 (MAE)

    • 残差绝对值的平均值,对异常值不敏感。

    • 公式:MAE=1nyiy^i\text{MAE} = \frac{1}{n} \sum |y_i – \hat{y}_i|

  5. 最大绝对误差 (Max Error)

    • 残差绝对值的最大值,反映最差的拟合情况。

    • 公式:Max Error=max(yiy^i)\text{Max Error} = \max(|y_i – \hat{y}_i|)


注意事项

  • 如果数据中有异常值,MAE 和 Max Error 可能更有参考价值。

  • AIC 和 BIC 适用于模型选择,可以比较不同模型的拟合效果。

  • 调整后的 R2R^2 适用于多参数模型,避免过度拟合。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇