2020年亚太杯APMCM数学建模大赛
B题 美国总统的经济影响分析
原题再现:
美国总统选举每四年举行一次。 2020年是美国总统大选年,共和党候选人唐纳德·特朗普和民主党对手乔·拜登竞选总统。 甲乙双方候选人在金融贸易,经济金融治理,其他一些不同的重点发展领域(如COVID-19作战措施,基础设施,税收,环境保护,医疗保险,就业,贸易,移民,教育等)有不同的政治立场和行政方案。)。 不同候选人的当选将塑造全球经济和金融发展的不同战略模式,并对美国经济和全球经济(包括中国经济)产生更大的影响)。 不同的政策将如何影响美国经济和中国经济? 中国应该如何回应? 你的团队被要求收集候选人在不同领域的政策主张、政策指南和相关数据,并回答以下问题:
1. 建立数学模型,并利用相关数据定量分析不同候选人对美国的可能影响经济。(你可以选择一个或几个领域分别回答这个问题或给出一个全面的答案)
2. 建立数学模型,利用相关数据定量分析不同候选人对中国经济的可能影响。 (你可以选择一个或几个领域分别回答这个问题或给出一个全面的答案)
3. 假设你是中国经济发展智库的成员,结合问题1和问题2的数学模型,在这两种情况下(哪一方获胜),你会对中国在相关领域的经济对策和政策提出什么建议)? 请具体说明你的观点。
整体求解过程概述(摘要)
为了解决美国大选结果对中美经济的影响问题,本文利用拉格朗日插值和主成分分析对历史数据进行补充和约简,建立了基于BP神经网络的预测模型,并利用VAR模型分析了未来经济发展状况,并建立了基于多元线性回归的层次分析模型,对大选结果进行评价和分析。
问题1需要对不同候选人的当选对美国经济的影响进行定量分析。通过比较两位候选人政策主张的异同,我们提取了相关政策指标来表达其对美国经济的影响,并收集了历史数据。对于缺失的数据,使用拉格朗日插值来完成原始数据。由于政策指标数量庞大,考虑对政策指标进行主成分分析,并建立基于BP神经网络的预测模型,利用主成分指标的历史数据预测未来4年的各种主成分指标。最后,利用VAR模型,利用主成分指标的预测值,计算出经济指标的预测价值,对美国未来经济发展进行分析。
问题2是分析对中国经济的影响。假设只有两位候选人的对华政策会影响中国经济,提取四个对华政策指标,并根据问题1计算中国经济指标的预测值,分析中国未来的经济发展。
问题3要求结合问题1和问题2的数学模型,提出特朗普和拜登当选时中国应该采取的经济对策。通过构建基于多元线性回归的层次分析模型,根据层次排序方法获得指标权重。结果显示,拜登的选举权重为0.51,而特朗普的选举权重则为0.49。二者差别不大,表明两位候选人的政策对中国经济的影响相似。在十大政策指标中,权重排名前三的是股价综合500指数、贸易逆差和进出口总额。这些指标主要与美国的金融和贸易政策相对应。针对这些政策,中国提出了适当的经济政策。
本文的创新之处在于,根据疫情的影响调整BP神经网络的预测结果,使其更符合实际情况,并使用VAR模型来分析和确定未来经济发展状况。在层次分析法中,采用多元线性回归方法构造判断矩阵,避免了专家评分主观化的缺点。
模型假设:
(1) 假设候选人上任后将执行已公布的政策主张。
(2) 根据新冠肺炎疫苗的开发,假设疫情不会持续到下一任期结束。
(3) 忽略非政策因素对中美经济的影响。
(4) 假设BP神经网络的误差不影响经济模型的求解。
问题分析:
问题一分析
问题一需要建立数学模型,通过相关数据定量分析不同候选人的当选对美国经济的影响。
首先,要比较分析两位候选人的政策建议的异同,主要包括新冠肺炎抗击措施、基础设施、税收、环保、医疗保险、就业、贸易、移民、教育等。
其次,不同的候选人采取不同的政策主张会导致不同的经济发展条件。为了描述这种影响,为每项政策选择相应的相关政策指标,包括基础设施投资、税收收入、平均二氧化碳排放量、平均国内一般政府医疗支出、失业率、进出口总额、贸易赤字、股价500指数、国际移民总数和教育支出百分比。另一方面,为了定量判断经济发展状况,选取了国内生产总值、生产者价格指数、平均国民总收入等相关经济指标。收集这些指标的历史数据。
第三,鉴于政策指标数量庞大,而且并非所有信息都是主要信息,因此对这些指标进行了主成分分析,以提取反映政策变化的综合指标,同时减少维度。
第四,为了预测主成分指标,需要建立一个预测模型。鉴于BP神经网络的诸多优点,本文利用BP神经网络建立了预测模型,并利用历史数据对未来4年的各项主成分指标进行了预测。
最后,仅仅根据历史数据预测经济指标并不能反映政策变化的影响。为了通过主成分指标的预测值来计算经济指标的预测价值,需要找到经济指标与主成分之间的关系。本文在VAR模型的基础上分析了两者之间的关系。然后将主成分指标的预测值代入模型,得到经济指标的预测价值,进而分析经济发展状况。
问题二分析
问题二需要建立数学模型,通过相关数据定量分析不同候选人当选对中国经济的影响。
与问题1不同的是,在问题2中,只有两位候选人的对华政策会影响中国经济。因此,在问题2中,选择了与中国政策相关的指标来表征不同候选者对中国经济的影响,包括中国外贸货物吞吐量、美国对中国的进出口、美元兑人民币汇率和美国联邦基金利率。另一方面,为了定量判断中国经济的发展,选择中国进出口总额和关税作为衡量中国经济的指标。由于第一种分析方法与其他主成分分析方法相似,因此不需要提取主成分分析。
问题三分析
问题三要求结合问题1和问题2的数学模型,分别提出特朗普和拜登当选时中国应采取的经济对策。
为了分析两位候选人当选后对中国经济的影响,本文采用基于多元线性回归的层次分析法模型来确定每项政策的影响权重和两位候选人对中国经济影响程度。为了避免层次分析法(AHP)的主观性,基于第一题和第二题的数据,采用多元线性回归方法确定判断矩阵。最后,根据层次排序的结果,分析了影响因素及对策。
模型的建立与求解整体论文缩略图 (多种解法和文档)
全部论文请见下方" 只会建模 QQ名片" 点击QQ名片即可
程序代码:
部分程序如下:
bash
clc;
clear;
%Parameter initialization
inputfile=xlsread('C:\Users\Admin\Desktop\DATA.xls','raw data');
for i=1:size(inputfile,2)
index=i;
data = inputfile(:,index);
la_data = ployinterp_column(data,'lagrange'); %Call Lagrange for interpolation
%The results are written to a file
rows = size(data,1);
result = cell(rows+1,2);
result{1,1}='original value';
result{1,2}='Lagrange interpolation';
result(2:end,1)= num2cell(data);
result(2:end,2)= num2cell(la_data);
xlswrite('C:\Users\Admin\Desktop\DATA.xls','after data');
end
ployinterp_column.m
function outputdata= ployinterp_column(columndata,type)
nans = isnan(columndata);
notzeroIndexes = find(nans);
%zeroIndexes = find(nans==0);
rows=size(columndata);
%currentValues=zeros(size(zeroIndexes));
for i=1:size(notzeroIndexes)
pre5=findPre5(notzeroIndexes(i),columndata);
last5=findLast5(notzeroIndexes(i),rows(1),columndata);
[~,pre5cols]=size(pre5);
[~,last5cols]=size(last5);
if strcmp(type,'lagrange')
missingValue=lagrange_interp([1:pre5cols,pre5cols+2:last5cols+pre5cols+1],...
[pre5,last5],pre5cols+1);
end
columndata(notzeroIndexes(i),1)=missingValue;
end
outputdata=columndata;
end
function pre5=findPre5(index,columndata)
if index<=0
disp('error');
exit;
end
num=5;
pre5=nan(1,5);
for i=index-1:-1:1
if isnan(columndata(i))==0
pre5(num)=columndata(i);
num=num-1;
end
if num==0
break;
end
end
pre5=pre5(~isnan(pre5));
end
function last5=findLast5(index,rows,columndata)
if index<=0 || index>rows
disp('error');
exit;
end
num=0;
last5=nan(1,5);
for i=index+1:rows
if isnan(columndata(i))==0
num=num+1;
last5(num)=columndata(i);
end
if num==5
break;
end
end
last5=last5(~isnan(last5));
end
lagrange_interp,m
function [ yi ] = lagrange_interp (X,Y,xi)
n=length(X);
m=length(xi);
yi=zeros(size(xi));
for j=1:m
for i=1:n
temp=1;
for k=1:n
if(i~=k)
temp=temp*(xi(j)-X(k))/(X(i)-X(k));
end
end
yi(j)=Y(i)*temp+yi(j);
end
end
end
bash
function [error,R2,a] = BPTrain(index,num_neurons)
%% Input training set and test set
%Training set 1 (data from Obama's eight years in office)
Train1=xlsread('C:\Users\Admin\Desktop\ExportData.xls',' Training set 1');
%Training set 2 (data from Obama's 8 years + Trump's 4 years)
Train2=xlsread('C:\Users\ Admin \Desktop\ExportData.xls',' Training set 2);
%Test set (data from Trump's four years in power)
Test=xlsread('C:\Users\ Admin \Desktop\ExportData.xls',' Test set ');
% Prediction set
%PY=xlsread('C:\Users\ Admin \Desktop\ExportData.xls','Sheet2');
%P_Y=PY';
%py=mapminmax('apply',P_y,ps_input);
%Training set and Test set selection
P_train=Train2(:,1)';
T_train=Train2(:,index)';
P_test=Test(:,1)';
T_test=Test(:,index)';
%Data normalization
[p_train, ps_input]=mapminmax(P_train,0,1);
[t_train, ps_output] = mapminmax(T_train,0,1);
p_test = mapminmax('apply',P_test,ps_input);
%Neural network creation
net=newff(P_train,T_train,num_neurons); %Number of hidden neurons
%Set training parameters
net.trainParam.epochs=1000; %Number of iterations
net.trainParam.goal=1e-3; %Training objectives
net.trainParam.lr=0.01; %Learning rate
%Training network
[net,tr]=train(net,p_train,t_train);
%Simulation test
t_sim=sim(net,p_test);
% t_sim=sim(net,py);
%Data inverse normalization
T_sim=mapminmax('reverse',t_sim,ps_output);
%%Performance evaluation
%Relative error
error=abs(T_sim-T_test)./T_test;
%Coefficient of determination R2
R2=(size(T_test,2)*sum(T_sim.*T_test)-sum(T_sim)*sum(T_test))^2/((size(T_test,2)*sum((T_sim).^2)-
(sum(T_sim))^2)*(size(T_test,2) * sum((T_test).^2)-(sum(T_test))^2));
%Comparison of results
result=[T_test' T_sim' error'];
%Number of iterations
a=tr.num_epochs;
end