问题1:产业关联性分析
在 question1.py
文件中,我们分析了中国主要产业之间的相互关系。以下是代码的详细解读:
# 问题1:分析中国主要产业之间的相互关系
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
def analyze_industry_relationships():
# 模拟各产业数据(实际应用中需要替换为真实数据)
industries = ['农林牧渔业', '工业', '建筑业', '金融业', '房地产业', '服务业']
n = len(industries)
# 创建相关系数矩阵(示例数据)
correlation_matrix = np.random.rand(n, n)
np.fill_diagonal(correlation_matrix, 1) # 对角线设为1
# 创建热力图
plt.figure(figsize=(10, 8))
sns.heatmap(correlation_matrix,
annot=True,
xticklabels=industries,
yticklabels=industries,
cmap='coolwarm')
plt.title('中国主要产业相关性分析')
plt.tight_layout()
plt.savefig('problem_1_industry_correlation.png')
plt.close()
return correlation_matrix
def main():
# 分析产业关系
correlation_matrix = analyze_industry_relationships()
# 输出分析结果
print("产业相关性分析完成,热力图已保存为'industry_correlation.png'")
if __name__ == "__main__":
main()
问题2:投资-GDP关系模型
在 question2.py
文件中,我们建立了投资与GDP之间的关系模型。以下是代码的详细解读:
# 模拟历史数据
years = np.array(range(2010, 2024))
n_years = len(years)
# 模拟各产业投资数据
investment_data = {
'工业': np.random.normal(1000, 100, n_years),
'服务业': np.random.normal(800, 80, n_years),
'农业': np.random.normal(500, 50, n_years)
}
# 建立多元线性回归模型
model = LinearRegression()
model.fit(X, gdp)
代码解读:
- 数据模拟:使用
numpy
的random.normal
函数生成正态分布的模拟投资数据,代表不同产业的投资额。 - 输入矩阵构建:将各产业的投资数据组合成输入矩阵
X
,用于回归分析。 - GDP数据模拟:通过线性组合投资数据生成模拟GDP数据,并加入随机噪声。
- 线性回归模型:使用
scikit-learn
的LinearRegression
类建立多元线性回归模型,分析投资对GDP的影响。 - 模型评估:输出R²值和各产业投资对GDP的影响系数,评估模型的拟合效果。
获取完整代码
查看后续第三、四、五小题完整代码,请访问:
- (内容实时更新)2025年第三届“华数杯”国际大学生数学建模竞赛B题完整代码【含Matlab/Python版本】