112 1

[其他] frontier 包的 lrtest.frontier:随机前沿模型的似然比检验怎么用(1.1-8 版) [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

0%

还不是VIP/贵宾

-

威望
0 级
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
10 点
帖子
0
精华
0
在线时间
0 小时
注册时间
2026-11-9
最后登录
2026-11-9

楼主
信用管理公司16986 发表于 昨天 18:23 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

随机前沿模型里最有名的一个坑:检验「有没有无效率项」的似然比统计量,在原假设下并不服从标准卡方。frontier 包的 lrtest.frontier 函数把这件事写在文档里——把一个用极大似然估计的前沿模型和一个「没有无效率项」的模型比,统计量渐近服从混合卡方,引的是 Coelli (1995) 那篇蒙特卡洛。文档同时给了另一条路:两个都用极大似然估计的前沿模型互相比,统计量渐近服从自由度等于约束个数的卡方。

 

一个函数,两种比较,两种分布,这是这份官方文档最值得先读的地方。

 

函数的两种调用

 

lrtest.frontier 是 lmtest 包 lrtest 的 S3 方法,签名很短:lrtest( object, ... ),object 是 class 为 frontier 的拟合对象,... 是另外几个 frontier 对象。

 

  • 只传一个对象:拿它和「没有无效率项、用 OLS 估计」的对应模型比。文档原话是 it compares the fitted model to a corresponding model without inefficiency (i.
    e. estimated by OLS)。
  • 传多个对象:把第一个依次和后面每一个比,即 it consecutively compares the fitted model object object with the models passed in ...。

 

统计量的写法是 2 ×(无约束模型的对数似然  受约束模型的对数似然):2 * ( logLik( mu ) - logLik( mr ) ),mu 是无约束、mr 是受约束。

 

两种比较,两种原假设分布

 

比较方式原假设下的渐近分布文档依据
极大似然前沿模型 vs OLS(无无效率项)混合卡方Coelli (1995)
两个极大似然前沿模型互比卡方,自由度=约束个数 j文档 Details 段

 

第一种比较对应的是「有没有无效率」这个边界检验:受约束模型里无效率项的方差被压到 0,参数落在参数空间边界上,所以分布不是普通卡方。第二种比较对应的是模型设定之争——分布形状、时间效应这类约束,参数不在边界上,用普通卡方。

 

文档自带的例子:菲律宾水稻面板

 

示例数据是 riceProdPhil,Tarlac 地区 43 个稻农 1990 至 1997 年的面板,共 17 个变量:产量 PROD、种植面积 AREA、劳动 LABOR、化肥 NPK、其他投入 OTHER,还有价格、户主年龄与教育、家庭规模、成年人数、旱地比例。用 plm 包把它声明成以 FMERCODE 和 YEARDUM 为索引的面板,然后拟合两个模型:

 

  1. mu = sfa( log( PROD ) ~ log( AREA ) + log( LABOR ) + log( NPK ),
  2.    truncNorm = TRUE, timeEffect = TRUE, data = riceProdPhil )
  3. mr = sfa( log( PROD ) ~ log( AREA ) + log( LABOR ) + log( NPK ),
  4.    data = riceProdPhil )
  5. lrtest( mu, mr )
  6. lrtest( mu )
  7. lrtest( mr )
复制代码

 

mu 是截断正态、允许时间效应;mr 用默认设置,即半正态、无时间效应。lrtest(mu, mr) 同时检验两个约束(分布从半正态放宽到截断正态要加一个 μ 参数;再加时间效应),所以自由度是 2。后两行是各自和 OLS 比,检验的是「到底要不要无效率项」。

 

这个例子选得很有针对性:它把「两模型互比」和「与 OLS 比」两种用法放在同一段代码里,读者照抄就能分清哪个 p 值该按哪种分布读。

 

返回的是一个 anova 对象

 

文档说返回值 class 为 anova,包含对数似然值、自由度、自由度之差、似然比卡方统计量和对应的 p 值。它复用 lmtest 的 lrtest,所以打印出来是熟悉的方差分析表样式:一行一个模型,最后一行是差值行。

 

这里有个文档没写透的地方值得留意:Details 段说第一种比较「渐近服从混合卡方」,Value 段只说返回「卡方统计量与对应 p 值」,没有说明 p 值到底按哪种分布算。做边界检验时,如果按普通卡方(自由度
1)取临界值,5% 的门槛是 3.841,判定会偏保守;混合卡方在同样 5% 下的临界值是 2.706(Kodde and Palm, 1986)。换句话说,p 值落在 0.05 到 0.10 之间时,别急着说「不显著」,回去查一遍混合卡方的临界值再下结论。这条不是文档的表述,是这条检验在文献里的通行处理,用在 doc 给出的 mixed chi-square 结论上正好。

 

两个极大似然模型互比时的另一个注意点

 

文档说自由度等于约束个数 j,用普通卡方。但如果被检验的约束恰好把参数推到边界——比如把 μ 约束到 0、把无效率方差约束到 0——分布仍然不是标准卡方,这时按 j 查表会偏松。所以第二种比较最稳的用法是检验非边界约束:时间效应在不在、函数形式换不换、分布形状换不换。

 

拟合函数本身的几个关键开关

 

lrtest 只是检验,前面那个 sfa() 才是主体。文档里有四个开关决定你比较的是什么:

 

  • truncNorm:TRUE 时无效率项取截断正态,多一个 μ 参数;FALSE 为半正态。文档注明这条只对「误差成分前沿」(ECF)有效。
  • timeEffect:FALSE 为默认,效率估计不随时间变;TRUE 允许时间影响效率。文档注明在「效率影响前沿」(EEF)里这个参数会被忽略。
  • ineffDecrease:TRUE 表示无效率降低被解释变量(生产函数),FALSE 表示无效率提高它(成本函数)。
  • 公式是否分两段:一段式(或 frontier() 的 zNames 为 NULL)估 ECF,对应 Battese and Coelli (1992);两段式(竖线后面写 Z 变量)估 EEF,对应 Battese and Coelli (1995)。返回对象的 modelType 就是 1 和 2 两个值。

 

muBound 只在 ECF 加截断正态时有用,用来把 μ 限制在正负 muBound 倍的无效率标准差之内;取无穷、0 或负数时不加限制。

 

两个模型能不能比,先看样本一不一致

 

似然比检验的前提是两个模型在同一批观测上估计。返回对象里有 validObs 这个字段,专门标记哪些观测真正进入了估计——含 NA、NaN 或无穷值的行会被剔除。如果宽松模型因为多了一个变量而多剔掉几十条观测,两个模型的对数似然就不在同一批样本上算出来,差出来的那部分不能全归给约束,检验结论站不住。

 

文档没有专门写一条警告,但把 validObs 放进返回值就是在提醒这件事。做法很直接:比较前先取两次估计的 validObs,逐位相与,若长度一致的观测数变少,就回到同一个子样本上重估两个模型,或者把宽松模型里缺值的变量剔掉。日志里若出现「模型比出来了但样本悄悄变了」,多半是这一步没做。

 

收敛状态与一个容易被忽略的诊断

 

返回对象里的 code 标明优化为什么停下:1 是相邻两次迭代的对数似然落在容差内;5 是找不到比上一步更大的似然;6 是梯度步搜索失败;10 是达到最大迭代次数。只有 1 是真收敛,5、6、10 都要回头改初值或换设定。

 

另有一个 olsSkewnessOkay,判断 OLS 残差的偏度是否符合预期。这个诊断在 SFA 里很实用:如果 OLS 残差偏度的方向就不对,前沿模型大概率估不出有意义的无效率项,先看这一项能省下不少时间。

 

版本、依赖与许可

 

  • 包名 frontier,版本 1.1-8,DESCRIPTION 日期 2020 年 4 月 15 日,CRAN 发布 2020 年 4 月 17 日
  • 作者 Tim Coelli 与 Arne Henningsen,维护者 Arne Henningsen
  • 依赖 R ≥ 2.15.0、micEcon ≥ 0.6-14、lmtest ≥ 0.9-24;另导入 moments、stats、Formula、miscTools、plm
  • 底层是 Tim Coelli 的 FRONTIER 4.1 的 Fortran 源码,文档建议同时读 Front41.pdf
  • 许可 GPL 第 2 版及以上

 

为什么用 R 包而不是 FRONTIER 4.1

 

项目主页列了几条差别:4.1 只能跑 Windows,R 包跨平台;4.1 要先准备指令文件和数据文件、必要时改设置文件,R 包是直接写公式;估计出来的系数与效率值可以直接进后续计算。更关键的是修了两个 bug——非平衡面板下 4.1 会给未观测到的观测值返回任意数,ECF 配非平衡面板时它还用任意数算对数似然的导数,容易把优化带偏。做非平衡面板的人,这一条足够成为换工具的理由。

 

────────────────

回帖可见主要参数表、返回对象字段清单、临界值对照与引用格式。


游客,如果您要查看本帖隐藏内容请回复

把经管之家装进你常用的 AI 智能体中

一键快捷安装经管之家 MCP/技能,让 AI 帮你查教程、找数据、读论坛帖子。

检索、阅读公开帖子不收费,安装可申请领取:3 通用积分+100 论坛币+3 元论坛资金

请点击查看安装教程与福利 →

说明: AI 算力按所用平台规则计算;附件按原帖条件获取;福利领取条件以活动页面为准。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


沙发
国泰君安45244 发表于 昨天 20:09
感谢楼主整理这份数据

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-11-10 01:32