面板数据
先查看各命令展开的示例,再按需展开其他选项及 R 实现。改写代码前,请阅读适用条件及差异说明。
hausman
固定与随机效应Hausman比较
Stata
hausman fixed randomR 包:plm
plm::phtest(fe, re)与 Stata 有差异 固定流程;请明确调整示例列名。要求解释变量相同且协方差假设相容。
xtcloglog
随机截距面板互补对数模型
Stata
xtcloglog binary x, reR 包:lme4
lme4::glmer(binary ~ x + (1 | id), data = data, family = stats::binomial(link = "cloglog"), nAGQ = 12)与 Stata 有差异 采用正态面板随机截距和12点自适应求积,与Stata的intpoints(12)一致;求积适配方法和收敛准则仍因软件而异。
xtdpd
动态面板一步差分GMM
Stata
xtdpd y L.y x, div(x) dgmmiv(y, lagrange(2 3))R 包:plm
{ plm <- plm::plm; plm::pgmm(y ~ lag(y, 1) + x | lag(y, 2:3), data = pd, effect = "individual", model = "onestep", transformation = "d", collapse = TRUE) }与 Stata 有差异 固定流程;请明确调整示例列名。仅支持标准差分GMM子集,并明确压缩工具变量。xtdpd还支持更复杂误差过程;比较前须统一工具变量、初始权重矩阵及有限样本修正。
xtdpdsys
水平方程与差分方程的系统GMM
Stata
xtdpdsys y x, maxldep(3)R 包:plm
{ plm <- plm::plm; plm::pgmm(y ~ lag(y, 1) + x | lag(y, 2:3), data = pd, effect = "individual", model = "onestep", transformation = "ld", collapse = TRUE) }与 Stata 有差异 固定流程;请明确调整示例列名。额外水平方程矩条件要求更强的初始条件假设;须明确统一工具变量压缩、范围及权重,不能声称与xtdpdsys默认设置完全相同。
xtgee
binomial GEE:exchangeable工作相关结构
Stata
xtgee binary x, family( binomial ) corr( exchangeable )R 包:geepack
geepack::geeglm(binary ~ x, id = id, waves = time, data = data, family = stats::binomial(), corstr = "exchangeable")与 Stata 有差异 观测须按连续面板排序。geeglm默认用夹心稳健标准误(std.err=“san.se”),对应xtgee, vce(robust);Stata默认采用常规模型型标准误。尺度估计、有限样本修正和相关结构估计仍可能不同。
binomial GEE:independence工作相关结构
Stata
xtgee binary x, family( binomial ) corr( independence )R 包:geepack
geepack::geeglm(binary ~ x, id = id, waves = time, data = data, family = stats::binomial(), corstr = "independence")与 Stata 有差异 观测须按连续面板排序。geeglm默认用夹心稳健标准误(std.err=“san.se”),对应xtgee, vce(robust);Stata默认采用常规模型型标准误。尺度估计、有限样本修正和相关结构估计仍可能不同。
gaussian GEE:ar1工作相关结构
Stata
xtgee y x, family( gaussian ) corr( ar1 )R 包:geepack
geepack::geeglm(y ~ x, id = id, waves = time, data = data, family = stats::gaussian(), corstr = "ar1")与 Stata 有差异 观测须按连续面板排序。geeglm默认用夹心稳健标准误(std.err=“san.se”),对应xtgee, vce(robust);Stata默认采用常规模型型标准误。尺度估计、有限样本修正和相关结构估计仍可能不同。
gaussian GEE:exchangeable工作相关结构
Stata
xtgee y x, family( gaussian ) corr( exchangeable )R 包:geepack
geepack::geeglm(y ~ x, id = id, waves = time, data = data, family = stats::gaussian(), corstr = "exchangeable")与 Stata 有差异 观测须按连续面板排序。geeglm默认用夹心稳健标准误(std.err=“san.se”),对应xtgee, vce(robust);Stata默认采用常规模型型标准误。尺度估计、有限样本修正和相关结构估计仍可能不同。
gaussian GEE:independence工作相关结构
Stata
xtgee y x, family( gaussian ) corr( independence )R 包:geepack
geepack::geeglm(y ~ x, id = id, waves = time, data = data, family = stats::gaussian(), corstr = "independence")与 Stata 有差异 观测须按连续面板排序。geeglm默认用夹心稳健标准误(std.err=“san.se”),对应xtgee, vce(robust);Stata默认采用常规模型型标准误。尺度估计、有限样本修正和相关结构估计仍可能不同。
另有 4 个示例及替代实现
binomial GEE:ar1工作相关结构
Stata
xtgee binary x, family( binomial ) corr( ar1 )R 包:geepack
geepack::geeglm(binary ~ x, id = id, waves = time, data = data, family = stats::binomial(), corstr = "ar1")与 Stata 有差异 观测须按连续面板排序。geeglm默认用夹心稳健标准误(std.err=“san.se”),对应xtgee, vce(robust);Stata默认采用常规模型型标准误。尺度估计、有限样本修正和相关结构估计仍可能不同。
poisson GEE:ar1工作相关结构
Stata
xtgee count x, family( poisson ) corr( ar1 )R 包:geepack
geepack::geeglm(count ~ x, id = id, waves = time, data = data, family = stats::poisson(), corstr = "ar1")与 Stata 有差异 观测须按连续面板排序。geeglm默认用夹心稳健标准误(std.err=“san.se”),对应xtgee, vce(robust);Stata默认采用常规模型型标准误。尺度估计、有限样本修正和相关结构估计仍可能不同。
poisson GEE:exchangeable工作相关结构
Stata
xtgee count x, family( poisson ) corr( exchangeable )R 包:geepack
geepack::geeglm(count ~ x, id = id, waves = time, data = data, family = stats::poisson(), corstr = "exchangeable")与 Stata 有差异 观测须按连续面板排序。geeglm默认用夹心稳健标准误(std.err=“san.se”),对应xtgee, vce(robust);Stata默认采用常规模型型标准误。尺度估计、有限样本修正和相关结构估计仍可能不同。
poisson GEE:independence工作相关结构
Stata
xtgee count x, family( poisson ) corr( independence )R 包:geepack
geepack::geeglm(count ~ x, id = id, waves = time, data = data, family = stats::poisson(), corstr = "independence")与 Stata 有差异 观测须按连续面板排序。geeglm默认用夹心稳健标准误(std.err=“san.se”),对应xtgee, vce(robust);Stata默认采用常规模型型标准误。尺度估计、有限样本修正和相关结构估计仍可能不同。
xtgls
xthtaylor
含时变与时不变内生协变量的Hausman-Taylor模型
Stata
xthtaylor y x1 x2 a b, endog(x2 b) constant(a b)R 包:plm
plm::plm(y ~ x1 + x2 + a + b | x1 + a | x2, data = data, index = c("id", "time"), random.method = "ht", model = "random", inst.method = "baltagi")与 Stata 有差异 固定流程;请明确调整示例列名。R三部分公式明确区分外生协变量及时变内生协变量;时不变内生效应识别要求足够的外生时变工具变量,这些分类须有实质依据。
xtivreg
固定效应工具变量回归
Stata
xtivreg y z (x = instrument), feR 包:plm
plm::plm(y ~ x + z | instrument + z, data = pd, model = "within")与 Stata 有差异 固定流程;请明确调整示例列名。工具变量有效性须有实质论证;此数据仅检验代码可执行性。
xtlogit
条件固定效应Logistic回归
Stata
xtlogit binary x, feR 包:survival
{ coxph <- survival::coxph; survival::clogit(binary ~ x + survival::strata(id), data = data) }与 Stata 有差异 固定流程;请明确调整示例列名。通过条件似然消去组截距;组内结局不变化的组不提供系数信息。
xtpcse
Beck-Katz面板修正协方差
Stata
xtpcse y x z, correlation(independent)R 包:plm
{ fit <- plm::plm(y ~ x + z, data = pd, model = "pooling"); lmtest::coeftest(fit, vcov. = plm::vcovBK(fit, type = "HC0", cluster = "time")) }与 Stata 有差异 vcovBK(cluster=“time”)允许PCSE所需的同期跨面板相关;面板平衡性、成对缺失处理、有限样本缩放及检验参考分布仍可能与xtpcse不同。
xtpoisson
随机截距面板Poisson
Stata
xtpoisson count x, re normalR 包:lme4
lme4::glmer(count ~ x + (1 | id), data = data, family = stats::poisson(link = "log"), nAGQ = 12)与 Stata 有差异 采用正态面板随机截距和12点自适应求积,与Stata的默认求积点数一致。xtpoisson须指定re normal才采用该分布,其单独re的默认分布为gamma。求积适配方法和收敛准则仍因软件而异。
xtprobit
随机截距面板Probit
Stata
xtprobit binary x, reR 包:lme4
lme4::glmer(binary ~ x + (1 | id), data = data, family = stats::binomial(link = "probit"), nAGQ = 12)与 Stata 有差异 采用正态面板随机截距和12点自适应求积,与Stata的intpoints(12)一致;求积适配方法和收敛准则仍因软件而异。
xtrc
xtreg
个体和时间双向固定效应
Stata
xtreg y x z i.time, feR 包:plm
plm::plm(y ~ x + z, data = pd, model = "within", effect = "twoways")与 Stata 有差异 固定流程;请明确调整示例列名。一阶差分和混合回归是明确的基准替代;须匹配估计量和效应结构。
另有 11 个示例及替代实现
组间回归
Stata
xtreg y x z, beR 包:plm
plm::plm(y ~ x + z, data = pd, model = "between", effect = "individual")与 Stata 有差异 固定流程;请明确调整示例列名。一阶差分和混合回归是明确的基准替代;须匹配估计量和效应结构。
个体固定效应
Stata
xtreg y x z, feR 包:plm
plm::plm(y ~ x + z, data = pd, model = "within", effect = "individual")与 Stata 有差异 固定流程;请明确调整示例列名。一阶差分和混合回归是明确的基准替代;须匹配估计量和效应结构。
拟合组内固定效应面板回归
Stata
xtreg y x z, feR 包:plm
plm::plm(y ~ x + z, data = pd, model = "within", effect = "individual")两端均通过组内变换拟合个体固定效应。plm报告变换模型系数向量,不含Stata所报告截距;残差自由度和协方差缩放须另行统一。
按个体聚类的面板稳健标准误
Stata
xtreg y x z, fe vce(cluster id)R 包:plm
{ V <- plm::vcovHC(fit, method = "arellano", type = "HC1", cluster = "group"); lmtest::coeftest(fit, vcov. = V) }与 Stata 有差异 Stata的xtreg, fe vce(robust)等同于vce(cluster id)。plm的HC1采用N/(N-K),K按组内模型系数计数,coeftest采用残差自由度;Stata还应用聚类修正,并以G-1为检验自由度。因此标准误和p值不构成Stata有限样本精确对应。
组内估计的面板聚类稳健标准误
Stata
xtreg y x z, fe vce(robust)R 包:plm
{ V <- plm::vcovHC(fit, method = "arellano", type = "HC1", cluster = "group"); lmtest::coeftest(fit, vcov. = V) }与 Stata 有差异 Stata的xtreg, fe vce(robust)等同于vce(cluster id)。plm的HC1采用N/(N-K),K按组内模型系数计数,coeftest采用残差自由度;Stata还应用聚类修正,并以G-1为检验自由度。因此标准误和p值不构成Stata有限样本精确对应。
混合面板回归基准
Stata
xtreg y x z, pa corr(independent)R 包:plm
plm::plm(y ~ x + z, data = pd, model = "pooling", effect = "individual")工作相关结构为独立时,高斯总体平均GEE与混合OLS的系数相同。xtreg, pa默认采用常规模型型GEE协方差,须显式指定才使用稳健协方差;plm混合回归按OLS残差缩放,故报告的标准误可能不同。
随机效应面板回归
Stata
xtreg y x z, reR 包:plm
plm::plm(y ~ x + z, data = pd, model = "random", effect = "individual")与 Stata 有差异 固定流程;请明确调整示例列名。一阶差分和混合回归是明确的基准替代;须匹配估计量和效应结构。
随机效应方差分量估计:amemiya
Stata
xtreg y x z, reR 包:plm
plm::plm(y ~ x + z, data = pd, model = "random", random.method = "amemiya")Amemiya是R中的替代方差分量估计方法,xtreg没有对应选项。Stata的xtreg, re使用默认方法,或以sa选择Swamy-Arora;所示Stata命令不选择Amemiya,不表示数值对应。
随机效应方差分量估计:nerlove
Stata
xtreg y x z, reR 包:plm
plm::plm(y ~ x + z, data = pd, model = "random", random.method = "nerlove")Nerlove是R中的替代方差分量估计方法,xtreg没有对应选项。Stata的xtreg, re使用默认方法,或以sa选择Swamy-Arora;所示Stata命令不选择Nerlove,不表示数值对应。
随机效应方差分量估计:swar
Stata
xtreg y x z, reR 包:plm
plm::plm(y ~ x + z, data = pd, model = "random", random.method = "swar")固定流程;请明确调整示例列名。这些是不同的方差分量估计方法,方法一致时方可比较估计值。
xtregar
xtscc
Driscoll-Kraay协方差
Stata
xtscc y x z, fe lag(2)R 包:plm
{ V <- plm::vcovSCC(fit, type = "HC1", maxlag = 2); lmtest::coeftest(fit, vcov. = V) }与 Stata 有差异 需要社区命令xtscc(ssc install xtscc);xtreg没有vce(dkraay)选项。两者均使用组内估计及滞后2阶的Driscoll-Kraay协方差,但有限样本缩放和检验自由度不同。
xttest0
个体随机效应Breusch-Pagan检验
Stata
xtreg y x z, re
xttest0R 包:plm
plm::plmtest(plm::plm(y ~ x + z, data = pd, model = "pooling"), type = "bp", effect = "individual")与 Stata 有差异 固定流程;请明确调整示例列名。Stata的边界修正混合分布可能不同于plm的卡方参考分布。
xtunitroot
面板单位根检验:madwu
Stata
xtunitroot fisher y, dfuller lags(1)R 包:plm
plm::purtest(pd$y, test = "madwu", exo = "intercept", lags = 1, pmax = 1)与 Stata 有差异 固定流程;请明确调整示例列名。Hadri的原假设为平稳性;确定项和滞后规则须一致。
面板单位根检验:hadri
Stata
xtunitroot hadri y, robustR 包:plm
plm::purtest(pd$y, test = "hadri", exo = "intercept", Hcons = TRUE)与 Stata 有差异 原假设是面板平稳。Hcons=TRUE选择异方差稳健Hadri统计量,对应Stata的robust;plm的Hadri检验忽略滞后选择,且不提供Bartlett HAC核修正。
面板单位根检验:ips
Stata
xtunitroot ips y, lags(1)R 包:plm
plm::purtest(pd$y, test = "ips", exo = "intercept", lags = 1, pmax = 1)与 Stata 有差异 固定流程;请明确调整示例列名。Hadri的原假设为平稳性;确定项和滞后规则须一致。
面板单位根检验:levinlin
Stata
xtunitroot llc y, lags(1)R 包:plm
plm::purtest(pd$y, test = "levinlin", exo = "intercept", lags = 1, pmax = 1)与 Stata 有差异 固定流程;请明确调整示例列名。Hadri的原假设为平稳性;确定项和滞后规则须一致。