数学建模-灰色关联分析
作者:互联网
灰色关联分析
1.1作用
- 系统分析
- 综合评价
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