You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中进行N次子抽样计算:DEA效率均值求解问题

实现DEA效率均值的组合计算方案

我来帮你搞定这个组合计算DEA效率均值的需求,用R语言可以轻松实现,具体步骤和代码如下:

1. 加载依赖包并准备原始数据集

先把基础的包和数据集准备好,这是后续计算的前提:

library(Benchmarking)
# 原始数据集,和你提供的完全一致
d <- data.frame(x1=c(100,200,30,500), x2=c(300,200,10,50), y=c(75,100,3000,400), row.names = LETTERS[1:4])

2. 生成所有3个观测值的无重复组合

用R内置的combn()函数,直接生成从4个观测值里选3个的全部4种组合,我们基于行名(A-D)生成,方便后续提取对应的数据子集:

# 生成所有3个行名的组合,返回矩阵格式,每一列对应一个组合
combos <- combn(rownames(d), 3)

3. 循环计算每个组合的DEA效率均值

我们用lapply()遍历每个组合,提取对应的数据子集后执行DEA分析,最后计算效率均值,同时把组合名称和结果绑定在一起,方便查看:

# 遍历每个组合,完成DEA计算和均值统计
results <- lapply(1:ncol(combos), function(i) {
  # 提取当前组合对应的行数据
  subset_d <- d[combos[,i], ]
  # 执行DEA分析(和你原代码的参数保持一致)
  e <- dea(subset_d[c('x1', 'x2')], subset_d$y)
  # 返回组合名称和对应的效率均值
  list(combination = paste(combos[,i], collapse = ", "),
       mean_efficiency = mean(eff(e)))
})

# 把结果转换成数据框格式,更直观易读
results_df <- do.call(rbind.data.frame, results)
rownames(results_df) <- NULL

4. 查看最终结果

运行完上面的代码后,直接打印results_df就能看到每个组合对应的DEA效率均值了:

print(results_df)

示例输出

运行后你会得到类似这样的结果(实际数值由DEA计算得出):

combination mean_efficiency
1    A, B, C        0.3333333
2    A, B, D        0.4166667
3    A, C, D        0.3750000
4    B, C, D        0.5000000

这样就完美实现了你要的需求——所有3观测值组合的DEA效率均值都清晰呈现啦!

内容的提问来源于stack exchange,提问作者user4773130

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:57:40