【归因】MATLAB实现最佳指纹法(待更新)


所谓归因指的是,评估 多个因果因素对变化或事件的相对贡献及其信度水平的过程。具体到气候变化领域,人们迫切地想了解引起工业革命以来气候系统状态显著变化的原因是什么——在多大程度上是由人类活动引起的?在多大程度上是由自然强迫引起的?这种原因判断的可信度有多大?这个科学求知的过程就是气候变化归因。显然,只有在科学上令人信服地确认人类活动是引起气候变化的主因时,国际社会和各国政府、社会公众才有理由采取深度减少温室气体排放、实现碳中和与绿色低碳转型的减缓措施来应对气候变化。
气候变化归因,主要采用 数理统计气候模式相结合的方法,大体分为 时间序列法推理法最优指纹法

  • 时间序列法是将计量经济学中的因果关系检验法应用到气候变化归因中,这种方法既考察变量间的相互关系,又考虑其自身的变化。
  • 推理法是把演绎与对标量因子假设的估计相结合,包括最高频率法和贝叶斯法等。
  • 目前,科学界使用最广泛的归因方法就是在哈塞尔曼工作基础上建立起来的最优指纹法(fingerprint)。它是一种通过最大化信噪比,增强气候变化信号特征使之排除内部变率噪声干扰的技术方法。

1 最佳指纹法(optimal fingerprinting method, OFM)

最优指纹法可以用广义多元回归来实现,即把观测的气候变化y看作是外部强迫引起的气候变化信号X的线性叠加,再加上气候系统内部变率u,即y=Xa+u.

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
以下是一份基于Matlab的气象条件归因实现代码: ```matlab % 数据读入 data = readtable('data.csv'); temp = data.Temp; wind_speed = data.WindSpeed; humidity = data.Humidity; pollutant = data.Pollutant; % 数据预处理 % 去除空缺值 data = data(~any(ismissing(data), 2), :); temp = data.Temp; wind_speed = data.WindSpeed; humidity = data.Humidity; pollutant = data.Pollutant; % 数据标准化 temp_std = (temp - mean(temp)) / std(temp); wind_speed_std = (wind_speed - mean(wind_speed)) / std(wind_speed); humidity_std = (humidity - mean(humidity)) / std(humidity); pollutant_std = (pollutant - mean(pollutant)) / std(pollutant); % PCA分析 X = [temp_std, wind_speed_std, humidity_std]; [coeff, score, latent] = pca(X); % 主成分分析结果 PC_scores = score; PC_coeff = coeff; PC_explained = latent ./ sum(latent); % 回归分析 Y = pollutant_std; B = regress(Y, PC_scores(:,1:2)); % 结果分析 % 计算气象条件的影响程度 temp_effect = B(1) * PC_coeff(1,1); wind_speed_effect = B(2) * PC_coeff(1,2); humidity_effect = B(3) * PC_coeff(1,3); % 绘制结果图 figure; scatter3(temp_std, wind_speed_std, humidity_std, 30, pollutant_std, 'filled'); colormap jet; colorbar; xlabel('Temperature'); ylabel('Wind Speed'); zlabel('Humidity'); title('Pollutant Concentration vs. Meteorological Conditions'); hold on; quiver3(0, 0, 0, temp_effect, wind_speed_effect, humidity_effect, 'LineWidth', 2, 'Color', 'k'); ``` 这份代码实现了气象条件归因的基本步骤,包括数据读入、数据预处理、PCA分析、回归分析等,最终输出了不同气象条件对污染物浓度的影响程度,并绘制了相应的结果图。需要说明的是,这份代码只是一个简单的示例,实际应用时需要根据不同的数据和问题进行相应的调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WW、forever

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值