【数学建模】数据的无量纲化处理 2005建模A题:长江水质综合评价与预测

数据的无量纲化处理是一种统计学中的预处理技术,主要用于消除数据中的量纲影响,使得不同单位或量级的指标可以相互比较和结合。无量纲化通过调整数据的范围或尺度,使得数据集中的每个特征或变量处于相似的数值区间内。以下是几种常见的无量纲化处理方法:

  1. 极值化(Min-Max Scaling 或 归一化 Normalization)
    将数据缩放到[0, 1]或[-1, 1]的区间内,公式为:
[
X_{\text{norm}} = \frac{X - X_{\text{min}}}{X_{\text{max}} - X_{\text{min}}}
]

  2. 标准化(Standardization 或 Z-score normalization)
    在这里插入图片描述

  3. 均值化(Mean Normalization)
    使数据具有零均值,但不一定单位方差,公式为:
[
X_{\text{mean}} = \frac{X - \mu}{X_{\text{max}} - X_{\text{min}}}
]

在这里插入图片描述

在具体应用中,选择哪种无量纲化方法取决于数据的特点和后续分析的需求。例如,如果数据的分布未知或非正态,可能更倾向于使用极值化;如果数据的分布接近正态,则标准化可能更为合适。

示例
假设我们有两个指标,一个是员工的年龄(范围从20到60),另一个是他们每天的步数(范围从5000到30000)。如果我们想对这两个指标进行比较,我们需要首先进行无量纲化处理。

对于年龄,假设最小值是20岁,最大值是60岁。使用极值化公式,我们可以将年龄缩放到[0, 1]的范围内。对于步数,同样地,我们可以用同样的方法进行缩放。这样,处理后的数据就可以在同一尺度上进行比较和分析了。

在这里插入图片描述
在这里插入图片描述
在进行综合评价之前,确实需要对评价指标进行标准化处理,以消除不同量纲和量级的影响。这个过程称为无量纲化,它确保了所有指标可以在同一尺度上比较,避免了综合评价中的偏差。对于效益型、成本型和固定型指标,无量纲化的方式有所不同。

给定的实测数据矩阵 (X) 和评价标准矩阵 (Y) 如下所示:
[
X = \begin{bmatrix}
130 & 10.3 & 0.35 & 2.76 \
105 & 10.7 & 0.4 & 2.0 \
20 & 1.4 & 4.5 & 0.22 \
30 & 6.26 & 0.25 & 1.67 \
20 & 10.13 & 0.5 & 0.23
\end{bmatrix},
Y = \begin{bmatrix}
4 & 23 & 110 & 660 \
0.09 & 0.36 & 1.8 & 7.1 \
12 & 2.4 & 0.55 & 19 \
0.02 & 0.06 & 0.31 & 1.2 \
0.1 & 0.1 & 0.1 & 0.1
\end{bmatrix}
]

其中,(X) 表示实测数据,(Y) 表示评价标准。接下来,我们构建无量纲化后的实测数据矩阵 (A) 和等级标准矩阵 (B)。

无量纲化方法

对于 效益型指标,使用最大值标准化,即 (\frac{x_{ij}}{\max(x_j)})。

对于 成本型指标,使用最小值标准化,即 (\frac{x_{ij}}{\min(x_j)})。

对于 固定型指标,可以使用目标值标准化,即 (\left|\frac{x_{ij}-target_j}{target_j}\right|),其中 (target_j) 是目标值。
在这里插入图片描述

建立无量纲化矩阵

对于实测数据矩阵 (X) 中的每一列(即每一个评价指标),根据其属性应用上述方法进行无量纲化,得到无量纲化实测数据矩阵 (A)。

同样地,对评价标准矩阵 (Y) 进行相应的无量纲化处理,得到无量纲化等级标准矩阵 (B)。

例如,对于 总磷(效益型指标),使用最大值标准化;对于 耗氧量(成本型指标),使用最小值标准化;对于 透明度总氨(假设为固定型指标),使用目标值标准化。

这样,通过无量纲化处理后,所有的指标都在同一尺度上,可以进行下一步的综合评价计算,比如使用加权平均法、TOPSIS法或其他多准则决策方法来得出最终的综合评价结果。

在这里插入图片描述
在这里插入图片描述
要对湖泊水质的富营养化进行综合评价,我们首先需要分析给定的四个指标(总磷、耗氧量、透明度、总氨)对水质评价的影响。富营养化通常是由过量的营养物质,尤其是磷和氮,导致藻类过度生长引起的,这会影响水体的透明度和溶解氧水平。接下来,我们将依据给定的评价标准,对这四个指标进行分析,并对湖泊水质进行综合评价。

分析指标作用

  1. 总磷(Total Phosphorus):总磷是富营养化的主要驱动因素,高浓度的总磷会导致藻类大量繁殖,加速富营养化进程。西湖、东湖和巢湖的总磷浓度远高于青海湖和滇池,显示出更高的富营养化风险。

  2. 耗氧量(Chemical Oxygen Demand, COD):耗氧量反映水中有机物含量,间接指示富营养化程度。西湖、东湖和巢湖的耗氧量较高,说明这些湖泊中可能有较多的有机污染物,这与总磷浓度高的趋势一致。

  3. 透明度(Transparency):低透明度往往与高藻类密度相关,藻类过多会降低水体的透明度。西湖、东湖和巢湖的透明度较低,表明藻类密度可能较高,滇池的透明度相对较好,但总磷和总氨的浓度仍显示其富营养化问题。

  4. 总氨(Total Ammonia):总氨是另一种重要的营养盐,虽然其对富营养化的影响不如总磷明显,但高浓度的总氨仍能促进藻类生长。西湖和巢湖的总氨浓度较高,表明它们也面临着氮源富营养化的压力。

综合评价

为了综合评价湖泊水质,我们将对照湖泊水质评价标准(表2-3),对每个湖泊进行等级评定。由于评价标准未提供确切的数值界限,我们将使用给出的区间进行大致判断。

杭州西湖
  • 总磷:富营养
  • 耗氧量:富营养
  • 透明度:极富营养
  • 总氨:中营养

综合来看,西湖水质等级接近富营养至极富营养。

武汉东湖
  • 总磷:富营养
  • 耗氧量:富营养
  • 透明度:极富营养
  • 总氨:贫营养

东湖水质等级接近富营养至极富营养。

青海湖
  • 总磷:贫营养
  • 耗氧量:贫营养
  • 透明度:中营养
  • 总氨:贫营养

青海湖水质等级接近贫营养。

巢湖
  • 总磷:中营养
  • 耗氧量:中营养
  • 透明度:极富营养
  • 总氨:贫营养

巢湖水质等级接近中营养至富营养。

滇池
  • 总磷:贫营养
  • 耗氧量:富营养
  • 透明度:贫营养
  • 总氨:贫营养

滇池水质等级接近贫营养至富营养。

综上所述,西湖、东湖和巢湖面临较为严重的富营养化问题,而青海湖和滇池的状况相对较好,但仍存在局部富营养化现象。对于治理措施,应当针对总磷和总氨的来源进行管控,比如减少农业面源污染,加强污水处理,控制入湖污染物排放,同时实施生态修复工程,提升湖泊自净能力。

% 实测数据矩阵
X = [130 10.3 0.35 2.76;
     105 10.7 0.4 2.0;
     20 1.4 4.5 0.22;
     30 6.26 0.25 1.67;
     20 10.13 0.5 0.23];

% 评价标准矩阵
Y = [1 4 23 110 660;
     0.09 0.36 1.8 7.1 27.1;
     37 12 2.4 0.55 0.17;
     0.02 0.06 0.31 1.2 4.6];

% 无量纲化处理
% 假设第1列和第2列为成本型指标,第3列和第4列为效益型指标
A1 = X(:,1) ./ max(X(:,1)); % 成本型指标 - 总磷
A2 = X(:,2) ./ max(X(:,2)); % 成本型指标 - 耗氧量
A3 = X(:,3) ./ min(X(:,3)); % 效益型指标 - 透明度
A4 = X(:,4) ./ min(X(:,4)); % 效益型指标 - 总氨
A = [A1 A2 A3 A4];

% 标准化评价标准
% 假设第1列至第5列为成本型指标
B = Y / max(Y); % 所有指标视为成本型指标进行标准化

% 计算权重
w = std(B) ./ sum(std(B));

% 计算距离
% 注意:dist() 和 mandist() 不是MATLAB内置函数,需要自定义或使用其他函数代替
% 这里使用欧式距离作为示例
jd = sqrt(sum((A - B') .^ 2, 2));
mjd = jd; % 假设 mjd 为某种距离计算方式,这里直接使用欧式距离

% 输出结果
disp('标准化后的实测数据矩阵 A:');
disp(A);
disp('标准化后的评价标准矩阵 B:');
disp(B);
disp('权重 w:');
disp(w);
disp('距离 jd:');
disp(jd);

相关推荐

  1. Matlab实现数据无量处理

    2024-07-10 21:52:04       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 21:52:04       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 21:52:04       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 21:52:04       45 阅读
  4. Python语言-面向对象

    2024-07-10 21:52:04       55 阅读

热门阅读

  1. 【对抗算法复现】CW

    2024-07-10 21:52:04       15 阅读
  2. vscode无法切换env环境

    2024-07-10 21:52:04       22 阅读
  3. GCN-LSTM实现时空预测

    2024-07-10 21:52:04       19 阅读
  4. 泛型

    泛型

    2024-07-10 21:52:04      19 阅读
  5. 二分查找(红绿标记法)

    2024-07-10 21:52:04       19 阅读
  6. uniapp开发踩过的坑合集( 持续更新 )

    2024-07-10 21:52:04       16 阅读
  7. 算法之工程化内容(1)—— Linux常用命令

    2024-07-10 21:52:04       20 阅读