加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

LMDI分解方法比较和MATLAB应用

(2016-08-29 23:45:08)
标签:

lmdi

指标分解

matlab

分类: IDA(IndexDecomposionAnalysis

LMDI分解方法包含两种不同的模型:LMDI-ILMDI-II,其不同点在于所选权重。这两种模型都有乘法和加法两种形式。LMDI从三个角度进行划分:

1.计算方法:LMDI-ILMDI-II

2.分解程序:加法模型和乘法模型;

3.数量指数和强度指数。

计算方法不同顾名思义,而加法和乘法模型会在下面介绍。数量指数和强度指数可以以能源消耗和总能源强度为例,

1.加法模型和乘法模型与数量指标和强度指标

能源消耗(数量指标):

式(1)反应消耗的能源总量,式(2)是加法模型,式(3)是乘法模型。


http://s13/mw690/003jeIqBzy74rcSSqe0bc&690
http://s15/mw690/003jeIqBzy74rcUNH1Y5e&690

总能源强度(强度指标):

式(4)反应总能源强度,式(5)是加法模型,式(6)是乘法模型。

http://s4/mw690/003jeIqBzy74rcYgPth63&690

http://s2/mw690/003jeIqBzy74rcYjSdb71&690

2. 8种模型的分类

1 LMDI模型分类比较

http://s13/mw690/003jeIqBzy74rd0MReAfc&690

3.数量指标VS强度指标

 

数量指标衡量能源消耗的总水平,而强度指标有能源效率的含义。前者中定义了活动影响,而强度指标不包含这层含义。2005年以前,对两种模型的偏好是相同的,但2005年以后,强度指标的选择明显多了起来。一些情况下,研究对象决定了选择哪种方法。例如,研究二氧化碳的总排放问题,往往会选择数量模型;而如果研究能源生产效率,则会选择强度模型。如果对哪一种方法没有特殊偏好,一般会选择数量模型,主要有以下几点原因:

 

1)强度指标在应用加法模型时,往往比数量模型困难。

 

2)应用乘数模型时,强度指标在结构和强度方面的分解结果与数量指标的LMDI-II相同,非常接近LMDI-I

 

3)数量指标可以得到更多的结果,包含更多的信息。


4.加法模型VS乘法模型

 

加法模型的使用比例更高,且逐年增加。时间序列都适用于加法和乘法模型,而同比数据则在加法模型中更加方便。

 

(1)加法模型的内部关联

http://s7/mw690/003jeIqBzy74rXdL2Rga6&690

(2)乘法模型的内部关联

http://s4/mw690/003jeIqBzy74rXjNPgvd3&690

加法模型更适合数量指标,而乘法模型更适合强度指标。



5.LMDI-I VS LMDI-II


在应用中,对两个模型没有特殊偏好。

6.MATLAB代码

(1)LMDI-I

%% 数据部分

E=[];%能量消耗为纵轴,时间为横轴;
Q=[];%产量为纵轴,时间为横轴;
S=[];%产业结构为纵轴,时间为横轴;
I=[];%能源消费强度为纵轴,时间为横轴;
%% LMDI-I加法模型
t=size(E,2);
DeltaEtot=sum(E(:,t))-sum(E(:,1));%t时期各部门消费总量与1时期消费总量之差;
DeltaEact=sum(L(E(:,t),E(:,1)))*log(sum(Q(:,t))/sum(Q(:,1)));
DeltaEstr=sum(L(E(:,t),E(:,1)).*log(S(:,t)./S(:,1)));
DeltaEint=sum(L(E(:,t),E(:,1)).*log(I(:,t)./I(:,1)));
%可用DeltaEtot-(DeltaEact+DeltaEstr+DeltaEint)检验误差大小
%% LMDI-I乘法模型
t=size(E,2);
Dtot=sum(E(:,t))/sum(E(:,1));
Dact=exp(sum(L(E(:,t),E(:,1)).*log(sum(Q(:,t))/sum(Q(:,1))))/L(sum(E(:,t)),sum(E(:,1))));
Dstr=exp(sum(L(E(:,t),E(:,1)).*log(S(:,t)./S(:,1)))/L(sum(E(:,t)),sum(E(:,1))));
Dint=exp(sum(L(E(:,t),E(:,1)).*log(I(:,t)./I(:,1)))/L(sum(E(:,t)),sum(E(:,1))));
%可用Dtot-Dact*Dstr*Dint检验误差

(MATLAB代码更新未完待续)









0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有