【数学建模】灰度预测之关联度求解

本文探讨了灰度预测的适用范围及其实现方法,特别是在处理规律性不强的离散数据时的优势。介绍了白色、黑色和灰色系统概念,并详细讲解了灰色系统的应用,如人口预测、灾变预测等。通过Python代码实例,展示了如何计算比较序列与参考序列之间的关联度,以及如何排序得出关联度最高的部门。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

灰度预测适用范围:

在实际中,若得到的是离散的,规律性不强的数据,此时线性回归就不适用了,我们需要采用灰度预测的方法。灰度预测法则是一种对含有不确定因素的系统进行预测的方法。

白色系统、黑色系统、灰色系统:

  • 白色系统:指一个系统的内部特征是完全已知的,即系统的信息是完全明确的。
  • 黑色系统:指一个系统的内部信息对外界来说是一无所知的,只能通过它与外界的联系来加以观测研究
  • 灰色系统:指一个系统内的一部分信息是已知的,另一部分信息是未知的,系统内各因素间有不确定的关系。

灰色系统的应用范畴:

  • 灰色关联分析
  • 灰色预测:人口预测、初霜预测、灾变预测……
  • 灰色决策
  • 灰色预测控制

关联度:

关联度分析是分析系统中各因素关联程度的方法,在计算关联度之前需要计算关联系数。
在这里插入图片描述
关联系数只表示了各个时刻参考序列和比较序列之间的关联程度,为了从总体上了解序列之间的关联程度,必须求出它们的时间平均值,即关联度。
在这里插入图片描述

python实现计算比较序列与参考序列之间的关联度:

原始数据表格如下所示,其中t1、t2、t3、t4表示四个不同的时刻,参考序列为Industry,分别计算后三者与Industry的关联度,代码最终返回的是关联度经过排序后的department的相应取值,排序采用逆序排序
在这里插入图片描述

import numpy as np
import pandas as pd
import warnings

warnings.filterwarnings("ignore")

df = pd.read_csv("department_data.csv")

m, n = df.shape
columns = list(df.columns[1:])

for c in columns[1:]:
    df[c] /= df[columns[0]]

df[columns[0]] = 1
data = df[columns]

for i in range(1, m):
    data.loc[i] = abs(data.loc[i] - data.loc[0])

data = np.array(data.values)

min_diff = np.min(data[1:, :])
max_diff = np.max(data[1:, :])

def correlation_coef(data, p):
    m1, n1 = data.shape
    result = []
    correlation_degree = {}
    for i in range(1, m1):
        for j in range(n1):
            data[i, j] = (min_diff + p * max_diff) / (data[i, j] + p * max_diff)

        correlation_degree[np.mean(data[i, :])] = i
    correlation_sort = sorted(correlation_degree.items(), key=lambda item:item[0], reverse=True)
    for each in correlation_sort:
        result.append(each[1])

    return list(df[df.columns[0]][result])

print("Ranking results of correlation degree from large to small: \n", correlation_coef(data, 0.5))
Ranking results of correlation degree from large to small: 
 ['Transportation', 'Business', 'Agriculture']

从代码运行结果可以看出,Transportation与Industry之间的关联度最大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值