数据包络分析  (MATLAB代码)_第1页
数据包络分析  (MATLAB代码)_第2页
数据包络分析  (MATLAB代码)_第3页
数据包络分析  (MATLAB代码)_第4页
数据包络分析  (MATLAB代码)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据包络分析 (MATLAB代码)X= % 输入多指标输入矩阵XY= % 输入多指标输出矩阵Yn,m=size(X) % n为输入的指标数,m为决策单元数s=size(Y) % s为输出的指标数epsilon=10-10 % 定义非阿基米德无穷小量epsilonf=zeros(1,n) -epsilon*ones(1,m+s) 1 % f为目标函数的系数矩阵A=zeros(1,n+m+s+1) % A为约束不等式系数矩阵b=0 % b为常数项 LB=zeros(n+m+s+1,1)UB= LB(n+m+s+1)=-Inffor i=1:n % Aeq为约束等式的系数矩阵 Aeq=X eye(m) zeros(m,s) -X(:,i) Y zeros(s,m) -eye(s) zeros(s,1) beq=zeros(m,1) % beq为常数项 Y(:,i); w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB) % 解线性规划,得DMUi的最佳权向 量wendw % 输出最佳权向量s_minus=w(n+1:n+m,:) % 输出输入松弛变量s_plus=w(n+m+1:n+m+s,:) % 输出输出松弛变量theta=w(n+m+s+1,:) % 输出综合效率 数据包络分析(DEAP2.1代码)eg4-dta.txt DATA FILE NAMEeg4-out.txt OUTPUT FILE NAME1 NUMBER OF FIRMS9 NUMBER OF TIME PERIODS 1 NUMBER OF OUTPUTS2 NUMBER OF INPUTS1 0=INPUT AND 1=OUTPUT ORIENTATED0 0=CRS AND 1=VRS2 0=DEA(MULTI-STAGE), 1=COST-DEA, 2=MALMQUIST-DEA, 3=DEA(1-STAGE), 4=DEA(2-STAGE)计算MALMQUIST指数步骤:以下是软件DEAP2.1运行出来的相关指标包括effch,techch,pech ,sech ,tfpch。假设第t年的全要素生产率(TFP)为基期,则。 主成分分析 (MATLAB程序)X= % 输入n,p=size(X) % n为矩阵的行,p为矩阵的列Y=zscore(X) % 对矩阵X标准化处理R=corrcoef(Y) % 计算相关系数矩阵V,D=eig(R) % 计算特征值和特征向量D1=diag(D) % 对特征值按降序排列DS(:,1)=sort(D1,descend)for i=1:p DS(i,2)=DS(i,1)/sum(DS(:,1) % 计算方差贡献率 DS(i,3)=sum(DS(1:i,1)/sum(DS(:,1) % 计算累计方差贡献率endT=0.85 % 主成分保留信息率for k=1:p if DS(k,3)=T Com_num=k % 确定主成分个数 break endendfor j=1:Com_num % 提取主成分对应的特征向量 PV(:,j)=V(:,p+1-j) endnew_score=Y*PV % 计算各评价对象的主成分得分for i=1:n % 计算总得分 total_score(i,1)=sum(new_score(i,:) total_score(i,2)=n+1-iend 层次分析法1 (MATLAB程序)A=; % 输入比例判断矩阵m,n=size(A) % 获取指标个数V,D=eig(A); % 计算特征值D和特征向量Vtz=max(D);B=max(tz); % 最大特征值row,col=find(D=B); % 最大特征值所在位置C=V(:,col); % 最大特征值所对应特征向量Q=zeros(n,1); % 各向量权重Qfor i=1:n Q(i,1)=C(i,1)/sum(C(:,1);% 特征向量标准化endQ % 输出权重向量 层次分析法2 (MATLAB程序)A= % 输入比例判断矩阵B=mean(A,2) % 计算行算术平均C=B/sum(B) % 对数据归一化,得到权重向量灰色预测法G(1,1)(MATLAB程序)x0= % 输入数据n=length(x0)x1=cumsum(x0) % 累加运算B=-1/2*(x1(1:n-1)+x1(2:n),ones(n-1,1) % 计算矩阵BY=x0(2:n) % 计算矩阵Yu=BY % 最小二乘解参数向量ua=u(1) b=u(2)for i=1:n F(i)=(x0(1)-b/a)/exp(a*(i-1)+b/a ;% 参数代入白化模型的解x1的预测 endyuce=x0(1),diff(F) % 差分运算,还原数据 x0的预测for i=1:n+m % m为预测的年数 F1(i)=(x0(1)-b/a)/exp(a*(i-1)+b/a;% 参数代入白化模型的解x1的预测endG=x0(1),diff(F1) % 差分运算,还原数据 x0的预测 灰色预测G(1,N) (MATLAB程序)X0=; % 输入原始数据序列n,m=size(X0) % n为矩阵的行,m为矩阵的列for j=1:m % 累加生成序列X1c=0 for i=1:n c=X0(i,j)+c X1(i,j)=cendendfor j=1:m % 计算矩阵B for i=1:n-1 l(i,j)=(X1(i,j)+X1(i+1,j)/2endendB=l ones(n-1,1);for j=1:m % 计算矩阵YY(1:n-1,j)=X0(2:n,j)a(:,j)=inv(B*B)*B*Y(1:n-1,j) % 计算参数估计值enda=aA=a(1:end,1:end-1)B=a(1:end,end)S=X1(1:end) % 计算模型的拟合值和预测值X0s(1:m,1)=Sfor k=2:n+t_testX0s(1:m,k)=expm(A*(k-1)*S+inv(A)*(expm(A*(k-1)-eye(size(expm(A*(k-1)*B-(expm(A*(k-2)*S+inv(A)*(expm(A*(k-2)-eye(size(expm(A*(k-2)*B)endX0ss=X0s(1:m,n+1:n+t_test)熵权法 (MATLAB程序)function weights=EntropyWeight(R) %熵权法求指标权重,R为输入矩阵, weights为权重向量rows,cols=size(R); %输入矩阵的大小,rows为对象个数, cols为指标个数k=1/log(rows);f=zeros(rows,cols); %初始化fijsumBycols=sum(R,1); %求每一列之和for i=1:rows for j=1:cols f(i,j)=R(i,j)/sumBycols(1,j) %对指标进行比重变换,得到fij endendlnfij=zeros(rows,cols); %初始化lnfijfor i=1:rows for j=1:cols if f(i,j)=0 lnfij(i,j)=0 else lnfij(i,j)=log(f(i,j) %计算lnfij end endendhj=-k*(sum(f.*lnfij,1); %计算指标熵值hjweights=(1-hj)/sum(1-hj); %计算各指标的权重qjendtestdata=Sheet1;weight=EntropyWeight(testdata)多层灰色关联法 (MATLAB程序)A=; % A为原始指标数据n,m=size(A) % n为对象个数,m为指标个数 p=0.5; % 分辨系数for i=1:m; V0(i)=max(A(i,:); % 求每一行的最大值endfor i=1:m for j=1:n C(i,j)=abs(A(i,j)-V0(i); % 求绝对差序列 endendrmin=min(min(C); % 求得最小差rmax=max(max(C); % 求得最大差for i=1:m for j=1:n E(i,j)=(rmin+p*rmax)/(C(i,j)+p*rmax); % 计算灰色关联系数 endendE;Wa=0.6336,0.2693,0.0971;Wb1=0.25,0.75;Wb2=0.3114,0.4152,0.0796,0.1938;Wb3=0.1138,0.5749,0.3114;Wb11=0.25,0.75;Wb12=0.4762,0.1905,0.3333; % 各级指标的AHP权重Wb21=0.25,0.75;Wb22=0.3088,0.1618,0.5294;Wb23=0.1138,0.5749,0.3114;Wb24=0.3750,0.3750,0.1250,0.1250;Wb31=1;Wb32=0.3114,0.1138,0.5749;Wb33=0.6667,0.3338;Rb11=Wb11*E(1:2,:);Rb12=Wb12*E(3:5,:);Rb21=Wb21*E(6:7,:);Rb22=Wb22*E(8:10,:);Rb23=Wb23*E(11:13,:); % 根据权重及灰色关联系数求综合关联度Rb24=Wb24*E(14:17,:);Rb31=Wb31*E(18,:);Rb32=Wb32*E(19:21,:);Rb33=Wb33*E(22:23,:);Rb1=Wb1*Rb11;Rb12;Rb2=Wb2*Rb21;Rb22;Rb23;Rb24;Rb3=Wb3*Rb31;Rb32;Rb33;Ra=Wa*Rb1;Rb2;Rb3关联系数法 (MATLAB代码)A=; % A为原始指标数据n,m=size(A) % n为对象个数,m为指标个数 p=0.5 % 分辨系数for i=1:m V0(i)=max(A(i,:); % 求每一行的最大值endfor i=1:m for j=1:n C(i,j)=abs(A(i,j)-V0(i); % 求绝对差序列 endendrmin=min(min(C); % 求得最小差rmax=max(max(C); % 求得最大差for i=1:m for j=1:n E(i,j)=(rmin+p*rmax)/(C(i,j)+p*rmax); % 计算灰色关联系数 endendE; % 输出灰色关联系数无量纲处理n,p=size(X)MX=max(X)MN=min(X)for j=1:p for i=1:n A(i,j)=(A(i,j)-MN(j)/(MX(j)-MN(j) endend % 离差标准化(规范化)for j=1:p % 对矩阵X标准化处

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论