其他分享
首页 > 其他分享> > 数学建模-灰色关联分析

数学建模-灰色关联分析

作者:互联网

灰色关联分析

1.1作用

  1. 系统分析
  2. 综合评价

1.2基本思想

根据序列曲线几何形状的相似度来判断其联系是否紧密。曲线越接近,相应序列之间的关联度就越大,反之就越小。

2.系统分析操作

例题

1.画统计图

2.分析统计图

3.确定母序列:能反映系统特征的数据序列。子序列:影响系统的数据序列

将“国内生产总值”作为母序列,其他一,二,三为子序列

4.对数据进行无量纲化处理

python代码:

#%%
#数据导入
import pandas as pd
import numpy as np

df=pd.read_excel("例题.xlsx")
df=df.iloc[:,[1,2,3,4]]
print(df)
#%%
#均值法无量刚化(除于均值)
def stand_sca(data):
    """
    均值法无量刚化
    :param data:传入的数据
    :return:标准化之后的数据
    """
    print(data.mean())
    print(data.std())
    print(data-data.mean())
    new_data=data/data.mean()
    return new_data
#%%

df1=stand_sca(df)
print(df1)

5.1计算灰度关联度

提取参考队列和比较队列
python:

ck=df1.iloc[:,[0]]
cp=df1.iloc[:,[1,2,3]]
fields=[columu for columu in cp]
t=pd.DataFrame()

for j in range(cp.shape[1]):
    t.loc[:,fields[j]] =cp[fields[j]]-ck['国内生产总值']
    

t=t.abs()
mmax=t.abs().max().max()
mmin=t.abs().min().min()
print(mmin,mmax)
5.2计算各个指标与母序列的关联系数

python:

rho=0.5
rhob=rho*mmax
rhoa=rhob+mmin
df_data=rhoa/(t+rhoa)
print(df_data)
#计算灰色关联度
data=[]
for j in range(df_data.shape[1]):
    data.append(df_data[fields[j]].mean())
print(data)
完整代码

数据导入
import pandas as pd
import numpy as np

df=pd.read_excel("例题.xlsx")
df=df.iloc[:,[1,2,3,4]]
print(df)
#%%

def stand_sca(data):
    """
    均值法无量刚化
    :param data:传入的数据
    :return:标准化之后的数据
    """
    new_data=data/data.mean()
    return new_data
#%%

df1=stand_sca(df)
print(df1)
#%%

ck=df1.iloc[:,[0]]
cp=df1.iloc[:,[1,2,3]]
fields=[columu for columu in cp]
t=pd.DataFrame()
for j in range(cp.shape[1]):
    t.loc[:,fields[j]] =cp[fields[j]]-ck['国内生产总值']

t=t.abs()
mmax=t.abs().max().max()
mmin=t.abs().min().min()
print(mmin,mmax)
rho=0.5
rhob=rho*mmax
rhoa=rhob+mmin
df_data=rhoa/(t+rhoa)
print(df_data)
#计算灰色关联度
data=[]
for j in range(df_data.shape[1]):
    data.append(df_data[fields[j]].mean())
print(data)

得出0.5098,0.6262,0.7488

标签:灰色,df,fields,df1,建模,关联,print,cp,data
来源: https://www.cnblogs.com/lxz2001/p/16245734.html