绿色全要素生产率GTFP的计算方法梳理

1 由来

在投入产出的关系中,越来越多的学者发现产出不仅仅只有期望产出,还有非期望产出,例如当在有GDP产出时候,在工业领域必然会产生二氧化碳、废水等非期望产出。那么原本CCR(规模报酬不变,即投入产出同比例增加)、BCC模型(规模报酬可变)考虑的投入越少导致产出越多就不能说明一个DMU是有效率的,如何将非期望产出考虑进去就成了问题。因此在此之后发展出SBM、DDF模型

2. DDF模型(方向距离函数模型)

3.SBM模型

Tone 于2001年提出SBM模型(Slack Based Measure),优点在于成功解决了经向模型在效率评价中对于松弛变量的忽视问题。

横轴:单位产出的投入1;

纵轴:单位产出的投入2;

投入越少越好,即前沿面越靠近原点对应的效率越高

GG‘:表示无效的程度

OG':表示有效的程度

1-GG'/OG':表示有效程度的衡量换句话说,就是径向效率值\theta = \frac{OG'}{OG}

小贴士:径向改进VS松弛改进

径向改进:投入同比例减少,例如EE';

松弛改进:投入不同比例减少,例如E'B

投入角度在衡量效率的时候没有考虑生产的松弛假定生产已经到前沿面了,那么投入要减少多少才能到标杆
产出角度在衡量效率的时候没有考虑投入的松弛假定投入已经到前沿面了,那么产出要增加多少才能到前沿面
非角度同时考虑投入和产出即考虑了投入减少的部分,也考虑了产出增加的部分

4.EBM模型(混合距离函数)

5.Malmquist指数、ML指数

补充请看:一文详细说明SBM、SBM-DDF、DDF、NDDF、ML指数是什么(学习笔记)_sbm-ddf模型-优快云博客

6.计算方法

分类方法优缺点
参数法随机前沿分析法(SFA)需要准确预测生产函数的特定形状,然后利用SFA计算出生产过程的效率值
非参数法数据包络分析法(DEA)DEA-SBM超效率模型包含非期望产出无需提前设定投入和产出 直接按的生产函数关系
Global-Malmquist-Luenberger(GML)指数对数据量纲没有要求,信息反映充分,规避线性无解的问题

GML指数:前为止有三种方法可以实现。

第一种是早期用的比较多的基于Kaoru Tone(2001)的SBM模型(SBM-GML),

第二种是Fukuyama&Weber(2009)提出的方向SBM距离函数模型(GML-DDF)。

最后一种方法是Rolf Fare&Grosskopf(2010)基于方向距离函数的SBM模型(SBM-DDF模型),

三种方法的优劣及合理性评价,目前暂无定论。

GM(Global Malmquist)指数是通过全局DEA模型计算的M指数
ML(Malmquist_Luenberger)指数考虑非期望产出DEA模型计算的M指数
GML(Global Malmquist_Luenberger)指数考虑非期望产出的全局DEA模型计算的M指数
M指数FGNZ分解
RD分解
Zofio分解

参考文献:

贸易综合竞争力对绿色全要素生产率的影响研究——王双  西南财经大学硕士论文

https://zhuanlan.zhihu.com/p/495166671

SBM模型原理详解_哔哩哔哩_bilibili

<think>好的,我现在需要回答用户关于DEA-CCR模型的问题,包括计算方法、代码实现以及相关原理。首先,我需要回顾一下DEA和CCR模型的基本概念。数据包络分析(DEA)是一种用于评估决策单元(DMU)效率的非参数方法,而CCR模型是其中基于规模报酬不变假设的模型。 用户提到了数据包络分析法(DEA)的R实现和Python实现,所以需要结合这些引用中的信息。引用1、2、3中提到了CCR和BCC模型的区别,CCR模型是规模报酬不变,而BCC是可变。用户主要关注CCR,所以需要集中讨论这一点。 接下来,用户想知道计算方法。根据引用3,CCR模型是径向的,允许输入或输出按相同比例调整。数学推导方面,可能需要写出线性规划的形式。例如,对于每个DMU,最大化效率值θ,满足输入和输出的约束条件。这里需要确保使用正确的数学公式,并用LaTeX格式呈现。 代码实现方面,用户可能希望看到Python或R的示例。引用1提到了R实现,引用2是Python,所以需要提供两种语言的代码片段。例如,Python中使用PuLP库来构建线性规划问题,R中使用lpSolve包。需要检查这些包是否适用于CCR模型,并写出正确的模型设置。 另外,用户可能对步骤感兴趣,比如数据准备、模型构建、求解和结果分析。需要分步骤解释,确保结构清晰。同时,要注意将数学公式和代码分开,符合用户要求的独立公式用$$...$$,行内用$...$。 还要生成相关问题,可能涉及模型假设、优化方法、与其他模型的比较等。需要根据引用中的信息,比如提到BCC、SBM模型,所以可以生成相关问题。 需要确保回答正确,比如CCR模型的线性规划形式是否正确,代码是否能够运行(可能需要简化,但逻辑正确)。同时,引用文献末尾添加引用标识,例如引用1、2、3中的内容,并在适当的地方标注。 现在,我需要组织这些内容,先解释CCR模型的原理,数学公式,然后分步骤说明计算方法,接着提供Python和R的代码示例,最后生成相关问题。确保符合用户的格式要求,使用中文,LaTeX正确,结构清晰。</think>### DEA-CCR模型详解 #### 一、模型原理 CCR模型基于**规模报酬不变**假设,通过线性规划方法评估决策单元(DMU)的相对效率[^3]。其核心思想是:在保持产出不变时,寻找输入的最小缩减比例$\theta$;或在输入不变时,寻找产出的最大扩展比例$\phi$。 #### 二、数学公式(投入导向型) 对第$k$个DMU的效率计算可表示为: $$ \begin{aligned} \text{max} \quad & \theta \\ \text{s.t.} \quad & \sum_{j=1}^{n} \lambda_j x_{ij} \leq \theta x_{ik}, \quad i=1,...,m \\ & \sum_{j=1}^{n} \lambda_j y_{rj} \geq y_{rk}, \quad r=1,...,s \\ & \lambda_j \geq 0, \quad \theta \text{ 无限制} \end{aligned} $$ 其中: - $x_{ij}$为第$j$个DMU的第$i$项输入 - $y_{rj}$为第$j$个DMU的第$r$项输出 - $\lambda_j$为权重变量 - $\theta$表示效率值($\theta=1$时DMU有效) #### 三、计算步骤 1. **数据标准化**:确保输入输出指标同向性 2. **构建线性规划模型**:为每个DMU建立单独模型 3. **求解效率值**:通过单纯形法等求解器计算 4. **有效性判断**:θ=1且松弛变量为0时DMU有效 #### 四、代码实现 ##### Python实现(使用PuLP库) ```python from pulp import * def dea_ccr(inputs, outputs): n_dmu = len(inputs) efficiency = [] for k in range(n_dmu): prob = LpProblem("DEA_CCR", LpMaximize) theta = LpVariable("theta") lambdas = [LpVariable(f"lambda_{j}") for j in range(n_dmu)] # 目标函数 prob += theta # 约束条件 for i in range(len(inputs[0])): prob += lpSum(lambdas[j] * inputs[j][i] for j in range(n_dmu)) <= theta * inputs[k][i] for r in range(len(outputs[0])): prob += lpSum(lambdas[j] * outputs[j][r] for j in range(n_dmu)) >= outputs[k][r] prob += lpSum(lambdas) == 1 # 规模报酬可变时去掉此约束 status = prob.solve() efficiency.append(value(theta)) return efficiency ``` ##### R实现(使用lpSolve包) ```r library(lpSolve) dea_ccr <- function(inputs, outputs) { n_dmu <- nrow(inputs) efficiency <- numeric(n_dmu) for (k in 1:n_dmu) { f.obj <- c(1, rep(0, n_dmu)) # 目标函数θ f.con <- matrix(0, nrow = ncol(inputs) + ncol(outputs) + 1, ncol = 1 + n_dmu) # 输入约束 for (i in 1:ncol(inputs)) { f.con[i, ] <- c(-inputs[k,i], inputs[,i]) } # 输出约束 for (r in 1:ncol(outputs)) { f.con[ncol(inputs)+r, ] <- c(0, outputs[,r]) } # 凸性约束 f.con[ncol(inputs)+ncol(outputs)+1, ] <- c(0, rep(1, n_dmu)) f.dir <- c(rep("<=", ncol(inputs)), rep(">=", ncol(outputs)), "==") f.rhs <- c(rep(0, ncol(inputs)), outputs[k,], 1) result <- lp("max", f.obj, f.con, f.dir, f.rhs) efficiency[k] <- result$objval } return(efficiency) } ``` #### 五、应用实例 假设3个DMU的输入输出数据: | DMU | 输入1 | 输入2 | 输出1 | |-----|-------|-------|-------| | A | 2 | 3 | 5 | | B | 3 | 4 | 7 | | C | 4 | 5 | 9 | 运行代码后将输出各DMU的θ值,θ=1的DMU为有效单元。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值