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

news2025/6/4 15:00:37

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.coloradmin.cn/o/2396057.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode hot100刷题日记——34.将有序数组转换为二叉搜索树

First Blood:什么是平衡二叉搜索树? 二叉搜索树(BST)的性质 左小右大:每个节点的左子树中所有节点的值都小于该节点的值,右子树中所有节点的值都大于该节点的值。 子树也是BST:左子树和右子树也…

网页自动化部署(webhook方法)

实现步骤: 宝塔安装宝塔WebHook 2.5插件。 github 上配置网页仓库(或可在服务器的网页根目录clone)。 配置宝塔WebHook 2.5 添加hook脚本; 编辑添加syncJC脚本; #!/bin/bash # 定义网站根目录 WEBROOT"/www…

AU6825集成音频DSP的2x32W数字型ClaSSD音频功率放大器(替代TAS5825)

1.特性 ● 输出配置 - 立体声 2.0: 2 x 32W (8Ω,24V,THD N 10%) - 立体声 2.0: 2 x 26W (8Ω,21V,THD N 1%) ● 供电电压范围 - PVDD:4.5V -26.4V - DVDD: 1.8V 或者 3.3V ● 静态功耗 - 37mA at PVDD12V ● 音频性能指标 - THDN ≤ 0.02% at 1W,1kHz - SNR ≥ 107dB (A-wei…

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1商用服务体验全流程

华为云 Flexus 与 DeepSeek-V3/R1 的深度整合,构建了一套 “弹性算力 智能引擎” 的协同体系。 Flexus 系列云服务器基于柔性计算技术,通过动态资源调度(如 Flexus X 实例)实现 CPU / 内存的实时弹性分配,尤其适合大模…

C# NX二次开发-查找连续倒圆角面

在QQ群里有人问怎么通过一个选择一个倒圆角面来自动选中一组倒圆角面。 可以通过ufun函数 UF_MODL_ask_face_type 和 UF_MODL_ask_face_props 可判断处理选择相应的一组圆角面。 代码: Tag[] 查找连续倒圆角面(Tag faceTag) {theUf.Modl.AskFaceType(faceTag, out int typ…

今天遇到的bug

先呈现一下BUG现象。 这主要是一个传参问题,参数一直传不过去。后来我才发现,问题所在。 我们这里用的RquestBody接收参数,所有请求的参数需要用在body体中接收,但是我们用postman,用的是字符串查询方式传参&#x…

长安链智能合约命令解析(全集)

创建命令解析 ./cmc client contract user create \ --contract-namefact \ --runtime-typeWASMER \ --byte-code-path./testdata/claim-wasm-demo/rust-fact-2.0.0.wasm \ --version1.0 \ --sdk-conf-path./testdata/sdk_config.yml \ --admin-key-file-paths./testdata/cryp…

一、OpenCV的基本操作

目录 1、OpenCV的模块 2、OpenCV的基础操作 2.1图像的IO操作 2.2绘制几何图形 2.3获取并修改图像中的像素点 2.4 获取图像的属性 2.5图像通道的拆分与合并 2.6色彩空间的改变 3、OpenCV的算数操作 3.1图像的加法 3.2图像的混合 3.3总结 1、OpenCV的模块 2、OpenCV的基…

裂缝仪在线监测装置:工程安全领域的“实时守卫者”

在基础设施运维领域,裂缝扩展是威胁建筑结构安全的核心隐患之一。传统人工巡检方式存在效率低、时效性差、数据主观性强等局限,而裂缝仪在线监测装置通过技术迭代,实现了对结构裂缝的自动化、持续性追踪,为工程安全评估提供科学依…

【论文精读】2024 ECCV--MGLD-VSR现实世界视频超分辨率(RealWorld VSR)

文章目录 一、摘要二、问题三、Method3.1 Latent Diffusion Model3.2 Motion-guided Diffusion Sampling3.3 Temporal-aware Decoder Fine-tuning 四、实验设置4.1 训练阶段4.2 训练数据 贡献总结 论文全称: Motion-Guided Latent Diffusion for Temporally Consis…

SpringBoot简单体验

1 Helloworld 打开:https://start.spring.io/ 选择maven配置。增加SpringWeb的依赖。 Generate之后解压,代码大致如下: hpDESKTOP-430500P:~/springboot2/demo$ tree ├── HELP.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── s…

2025年通用 Linux 服务器操作系统该如何选择?

2025年通用 Linux 服务器操作系统该如何选择? 服务器操作系统的选择对一个企业IT和云服务影响很大,主推的操作系统在后期更换的成本很高,而且也有很大的迁移风险,所以企业在选择服务器操作系统时要尤为重视。 之前最流行的服务器…

Azure devops 系统之五-部署ASP.NET web app

今天介绍如何通过vscode 来创建一个asp.net web app,并部署到azure 上。 创建 ASP.NET Web 应用 在您的计算机上打开一个终端窗口并进入工作目录。使用 dotnet new webapp 命令创建一个新的 .NET Web 应用,然后将目录切换到新创建的应用。 dotnet new webapp -n MyFirstAzu…

学习路之PHP--easyswoole_panel安装使用

学习路之PHP--easyswoole_panel安装使用 一、新建文件夹二、安装三、改配置地址四、访问 IP:Port 自动进入index.html页面 一、新建文件夹 /www/wwwroot/easyswoole_panel 及配置ftp 解压easyswoole_panel源码 https://github.com/easyswoole-panel/easyswoole_panel 二、安…

【拓扑排序】P6560 [SBCOI2020] 时光的流逝|普及+

本文涉及知识点 C图论 拓扑排序 P6560 [SBCOI2020] 时光的流逝 题目背景 时间一分一秒的过着,伴随着雪一同消融在了这个冬天, 或许,要是时光能停留在这一刻,该有多好啊。 … “这是…我在这个小镇的最后一个冬天了吧。” “嗯…

SSRF 接收器

接收请求 IP.php <?php // 定义日志文件路径 $logFile hackip.txt;// 处理删除请求 if (isset($_POST[delete])) {$ipToDelete $_POST[ip];$lines file($logFile, FILE_IGNORE_NEW_LINES);$newLines array();foreach ($lines as $line) {$parts explode( | , $line);…

FastAPI MCP 快速入门教程

目录 什么是 FastAPI MCP&#xff1f;项目设置1. 初始化项目2. 安装依赖3. 项目结构 编写代码创建主应用文件 运行和测试1. 启动服务器2. 使用 MCP Inspector 测试 什么是 FastAPI MCP&#xff1f; FastAPI MCP 是一个将 FastAPI 应用程序转换为 Model Context Protocol (MCP)…

uni-app学习笔记二十一--pages.json中tabBar设置底部菜单项和图标

如果应用是一个多 tab 应用&#xff0c;可以通过 tabBar 配置项指定一级导航栏&#xff0c;以及 tab 切换时显示的对应页。 在 pages.json 中提供 tabBar 配置&#xff0c;不仅仅是为了方便快速开发导航&#xff0c;更重要的是在App和小程序端提升性能。在这两个平台&#xff…

【Redis】基本命令

Redis命令行客户端 现在我们已经启动了Redis服务&#xff0c;下面将介绍如何使用redis - cli连接、操作Redis服务。客户端和服务端的交互过程如图1 - 3所示。 redis - cli可以使用两种方式连接Redis服务器。 第一种是交互式方式&#xff1a;通过redis - cli -h {host} -p {p…

哈希:闭散列的开放定址法

我还是曾经的那个少年 1.概念 通过其要存储的值与存储的位置建立映射关系。 如&#xff1a;基数排序也是运用了哈希开放定址法的的思想。 弊端&#xff1a;仅适用于数据集中的情况 2.开放定址法 问题&#xff1a;按照上述哈希的方式&#xff0c;向集合插入数据为44&#xff…