当前位置: 首页 > news >正文

2024年数维杯国际大学生数学建模挑战赛B题空间变量协同估计方法研究解题全过程论文及程序

2024年数维杯国际大学生数学建模挑战赛

B题 空间变量协同估计方法研究

原题再现:

  在数理统计学中,简单采样通常假设来自相同总体的采样点彼此独立。与数理统计相反,空间统计假设空间变量的采样点是相依的,并在其值中表现出某些趋势。因此,空间变量的值及其趋势可以用于估计其在未采样位置的值。空间估计最常见的方法是克里格算法。
  在实际工程中,可以使用不同的方法测量相同的空间变量。尽管这些方法测量相同的物理量,但测量原理的差异导致测量值的差异。然而,这些值仍然表现出显著的空间相关性。此外,一些空间变量可能具有不同的物理意义,但显示出一定的相关性和相似性。这些空间相关变量可以具有相同或不同的测量单位。
  一些空间变量成本高,难以测量。尽管它们的精度很高,但在实际工作中仅获得有限数量的样本。另一方面,一些空间变量易于测量且价格低廉,导致在大面积上进行广泛采样。
  在工程研究中,当研究采样不足的空间变量的空间变化模式时,研究人员经常参考与目标变量强相关的其他空间变量,并使用协作估计。在地质和采矿研究中,解决这些问题的主要方法是共克里金方法。虽然在理论上很好地理解Co-Kriging算法,但由于计算空间变量之间的互协方差或互变异函数的挑战,它的实现很困难,这使得该算法难以在实践中应用。
随着人工智能和机器学习方法的发展,这些技术已经成功地应用于许多行业。提供的问题提供了两个数据集,附件1和附件2,其中包含来自同一区域的四个空间属性的测量,目标变量具有更高的测量成本。该问题要求参与者研究适当的方法来协同估计附件中给出的空间属性数据:
  问题1:使用附件1中的数据研究其中一个空间变量(F1_目标变量)的变化模式。
  (1) 随机均匀地对目标变量重新采样,并使用重新采样的值估计未采样位置处的空间变量值。将结果显示为等高线贴图。
  (2) 改变样本量,探索样本量与估计误差之间的关系。
问题2:使用附件1中的数据研究目标变量和协作变量之间的相关性。选择两个协作变量作为目标变量的估计协作变量。
  问题3:使用附件1中的数据和问题2的结果,选择一个或两个协作变量,并研究空间变量(F1_目标变量)的变化模式。
  (1) 随机一致地对目标和协作变量重新采样,并使用重新采样的值估计未采样位置的空间变量值。将结果显示为等高线贴图。
  (2) 改变样本量,探索样本量与估计误差之间的关系。
  (3) 至少选择两种方法并进行比较。
  问题4:附件2中的目标变量(F2_target变量)采样数据不足。从问题3中选择最佳方法来估计目标变量的趋势,并将结果显示为等高线图。
  数据描述:
  1.附件中的数据从矩形区域采样。矩形结构如下:
(1) X坐标范围:柱跨度范围为51250.000米至64500.0000米;(2)Y坐标范围:行跨度范围为78750.0000米至92000.0000米;(3)研究区划分为50米×50米的小网格,共266×266个网格点。在这些网格点处提供空间变量的采样值。
  2.附件2中的文件“F2_target_variable_sampling.txt”包含从研究区域内的网格点均匀采样的1000个采样点。出于研究目的,可以根据需要按顺序提取样本。例如,要选择100个采样点,请从数据中提取前100个点;对于200个采样点,提取前200个点,依此类推。

整体求解过程概述(摘要)

  在研究空间变量的空间变异性时,协克里金协同估计方法表现出良好的局部细节捕捉能力和空间相关性优势。针对协方差计算问题,建立了基于FMM优化的协同Kriging模型,并对空间变量的变化模式进行了深入研究。
  对于问题1,在对附件1数据进行归一化和二维网格划分后,采用随机均匀重采样保证公平性和随机性,然后构造线性插值和Kriging插值模型。利用三维和等高线图验证了模型的拟合性,分析了F1\u目标的全局层次性、局部峰值特征和空间相关性。其次,针对第二个问题,利用python对所建立的RMSE误差分析模型进行求解,得出结论:Kriging插值的RMSE误差随着样本量的增加迅速减小并趋于稳定,而线性插值的RMSE误差减小缓慢且难以收敛。
  对于问题2,研究变量之间的相关性,综合选择两个合作变量。首先通过散点图和密度直方图绘制变量的初始趋势,然后结合Jarque-Bera检验确定数据的非正态分布。采用Spearman相关系数分析,用SPSS软件计算目标变量与协变量的相关性。结果表明,在99%的病例中,协变量1和协变量4与目标变量有很强的相关性。因此,选择Collaborative1和Collaborative4作为协变量。
  对于问题3,在问题2 Kriging模型的基础上,引入快速多极子法建立FMM优化协同Kriging模型,并通过二维等值线图揭示F1\u目标空间变量的各向异性。其次,在第一个问题的基础上,第二个问题建立了优化的RMSE、R²和MAPE模型,并通过python可视化模型得到了线图。结果表明,随着样本量的增加,误差迅速减小,收敛速度加快,在高样本量下,全局和局部预测精度都有显著提高。同时,通过比较随机森林模型,并结合多指标雷达图和局部高值热图对两种模型的性能进行量化,验证了协克里金模型在空间相关性和插值精度方面的优势。结论:优化模型在捕捉空间相关性、平衡全局和局部波动、提高精度方面具有显著优势,适用于F1\U目标空间变量。
  对于问题4,必须确保以最佳方式估计目标变量(F2\u目标)的趋势。基于附件2的数据,本文进行了Jarque-Bera正态分布检验和Spearman相关系数求解,并选取最优协变量。在问题3模型的基础上,建立了基于FMM优化的协同Kriging模型,对未采样点进行插值,揭示目标变量(F2\u目标)的变化趋势。

模型假设:

  1.目标变量和协变量在空间上逐渐变化。
  2.平均值在区域上是恒定的,协方差仅取决于点距离。
  3.预测误差在空间上是独立的,由样本大小和模型特征驱动。

问题分析:

  问题一分析
  根据问题1,需要综合分析F1_目标的空间分布特征和影响因素。对于问题1的第一部分,在数据归一化和二维网格划分的基础上,采用随机均匀重采样来保证空间点的公平性和随机性,建立了线性插值和克里格插值模型,并绘制了三维地图和等高线图来分析两种模型的适应性,直观地给出了F1_目标的空间变化模式。第二部分在插值模型的基础上建立了RMSE误差分析模型,并通过调整样本大小来研究其对预测误差的影响。
  问题二的分析
  为了分析F1_目标与协变量之间的相关性,我们首先绘制散点图,直观地分析目标变量与协变量(Collaborative1、2、3和4)之间的关系,然后获得目标变量与每个协变量之间相关性的趋势。然后绘制密度直方图,拟合正态分布曲线。在初步判断数据的正态趋势后,通过Jarque-Bera检验对变量的正态性进行了定量分析。最后利用Spearman相关系数分析目标变量与协变量之间的相关性,并绘制热图来表示,通过视觉分析和统计检验来识别两个协变量。
  问题三分析
  基于问题二的模型,我们需要选择与目标变量相关性最强的合作变量,并进一步研究目标变量F1_目标的空间变化模式。由于协方差难以用协克里金算法计算,采用快速多极子方法计算协方差函数,建立了基于FMM优化的协克里金模型,以提高插值精度,并绘制了二维等值线图来表示空间变化。样本量与估计误差之间的关系由MRSE、R²和MAPE线图表示。同时,建立了随机森林模型作为比较,并利用多指标雷达图和局部高值热图对两种模型的全局预测性能进行了量化。
  问题四分析
  问题4是前三个问题的综合,需要选择最佳方法来估计目标变量(F2_target)的趋势。在估计之前,还考虑了协变量对目标变量的协同效应,进行了正态分布检验并求解了相关系数,找到了Spearman相关系数最强的变量作为协变量。在问题3的基础上,建立了基于FMM优化的协同克里格模型,并对剩余的未采样点进行插值,以估计目标变量的趋势。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:

import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 
# File paths and names 
file_paths = [] 
# Load data from Excel files 
data_sets = [(pd.read_excel(path, header=None).values, name) for path, name in 
file_paths] 
# Define grid coordinates
grid_size = (266, 266) 
x = np.linspace(51250.0, 64500.0, grid_size[1])  # X-coordinate range 
y = np.linspace(78750.0, 92000.0, grid_size[0])  # Y-coordinate range 
X, Y = np.meshgrid(x, y) # Plot 3D surface for each dataset 
for data, name in data_sets: fig = plt.figure(figsize=(12, 8)) ax = fig.add_subplot(111, projection='3d') # Create a 3D surface plot surf = ax.plot_surface(X, Y, data, cmap='viridis', edgecolor='none', 
alpha=0.8) fig.colorbar(surf, ax=ax, label='Value') # Set title and axis labels ax.set_title(f'Three-Dimensional Surface Plot for {name}') ax.set_xlabel('X Coordinate') ax.set_ylabel('Y Coordinate') ax.set_zlabel('Value') plt.show()
import numpy as np 
import pandas as pd # Define the target grid size 
grid_size = (266, 266) # File path 
file_path = "" # List to store the data 
data = [] # Open the file and extract numerical data 
with open(file_path, 'r') as file: for line in file: try: # Convert each line into a list of floating-point numbers row = list(map(float, line.split())) if row:  # If the line is not empty data.extend(row) except ValueError: # Skip non-numerical lines continue # Convert the data to a numpy array 
data = np.array(data) # Check if the data size matches the target grid size 
if data.size != grid_size[0] * grid_size[1]: raise ValueError(f"Data size {data.size} does not match the target grid size 
{grid_size}!") # Reshape the data into a 266 x 266 2D array 
reshaped_data = data.reshape(grid_size) # Output the result for verification 
print("Data has been successfully reshaped to 266 x 266 format!") # Save the reshaped data to an Excel file 
output_file = "reshaped_data.xlsx" 
pd.DataFrame(reshaped_data).to_excel(output_file, index=False, header=False) 
print(f"Data has been successfully saved as an Excel file: {output_file}")
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可
http://www.xdnf.cn/news/758557.html

相关文章:

  • ZIP Cracker版本更新了
  • java中IO流分为几种
  • 深入Java NIO:构建高性能网络应用
  • AAA基础配置
  • LeetCode - 234. 回文链表
  • Roller: 抽奖系统测试的幕后剧本-测试报告
  • Spring AI Image Model、TTS,RAG
  • PINN模型相关原理
  • 【CBAP50技术手册】#32 Organizational Modelling(组织建模):BA(业务分析师)的“变革导航图”
  • 安卓jetpack compose学习笔记-UI基础学习
  • 机电的焊接技术
  • 《中国棒垒球》注册青少年运动员需要什么条件·棒球1号位
  • 【Go-6】数据结构与集合
  • [网页五子棋][对战模块]处理连接成功,通知玩家就绪,逻辑问题(线程安全,先手判定错误)
  • Spring Boot,注解,@ComponentScan
  • linux驱动开发(1)-内核模块
  • rl_sar功能包详解
  • pyqt5笔记20250601
  • gitflow
  • 《Pytorch深度学习实践》ch2-梯度下降算法
  • 设计模式——状态设计模式(行为型)
  • 设计模式——代理设计模式(结构型)
  • android stdio 的布局属性
  • 鸿蒙ArkTS | Badge 信息标记组件自学指南
  • MyBatis03——SpringBoot整合MyBatis
  • Kubernetes(K8s)核心架构解析与实用命令大全
  • Go 语言 select 语句详解
  • JMeter 性能测试
  • DDR5 ECC详细原理介绍与基于协议讲解
  • 3D Gaussian splatting 05: 代码阅读-训练整体流程