本文介绍了R(Panel Data)中固定效应的F检验的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试对面板数据OLS回归(在R中)的固定效应(个别特定的虚拟变量)的联合显著性进行F检验,但我还没有找到一种方法来实现大量固定效应。理想情况下,我会使用plm
包中的函数,但是我还没有找到专门执行此测试的函数。
这是Stata在使用xtreg, fe
命令时自动执行的操作。在Stata中,结果如下所示:
------------------------------------------------------------------------------
F test that all u_i=0: F(49, 498) = 12.00 Prob > F = 0.000
再次尝试为大量伪变量重现R中的Stata结果,可能由+ factor(us.state)
使用lm()
或model = "fe"
使用plm()
指定。
下面是一个可重复使用的示例:
require(foreign)
voter <- read.dta("http://www.montana.edu/econ/cstoddard/562/panel_hw.dta")
reg1 <- lm(vaprate ~ gsp + midterm + regdead + WNCentral + South + Border
+ factor(state), data=voter)
相当于使用plm
包进行的以下"范围内"回归。
require(plm)
reg1.fe <- plm(vaprate ~ gsp + midterm + regdead + WNCentral + South + Border,
data=voter, index = c("state","year"), model = "within")
因此,检验将是所有状态伪变量联合不同于零(联合显著)的检验。这是对无限制模型(上面的REG1和reg1.fe)的线性限制。此F检验在以下文档(请参阅幻灯片5-7)中有更好的解释。http://jackman.stanford.edu/classes/350B/07/ftestforWeb.pdf
这里是我为F-检验创建一个带有零假设的‘R’矩阵的一个失败的尝试:rb=q,其中b是系数矩阵(Beta Hat),q是一个零向量。
d1 = length(unique(voter$stcode))-1
d2 = length(reg1$coefficients)
R = cbind(matrix(0,d1,d2),diag(d1))
linearHypothesis(reg1,R,rhs=0)
这不起作用!而且,我希望有一种简化的方法来测试所有固定效应虚拟变量的联合重要性。
推荐答案
首先,我想建议您的问题可以通过(1)提供一个可重现的示例和(2)描述当您说‘F检验’时所指的准确测试来改进。也许是指向Stata文件的链接?F是分布,所以可以有无数个被称为"F检验"的检验。
如果你真正感兴趣的是确定固定效应模型是否比没有固定效应的OLS模型更适合数据,那么你总是可以使用似然比检验。我确信在R中有很多实现,但lmtest
包提供的实现非常方便。下面是一个使用plm
包分发的数据集的示例(您似乎已经安装了该包,所以应该很容易尝试)。library(plm)
data(Produc)
library(lmtest)
mod <- lm(pcap ~ hwy + water, Produc)
mod.fe <- lm(pcap ~ hwy + water + factor(state), Produc)
lrtest(mod, mod.fe)
和输出:
Likelihood ratio test
Model 1: pcap ~ hwy + water
Model 2: pcap ~ hwy + water + factor(state)
#Df LogLik Df Chisq Pr(>Chisq)
1 4 -8038.1
2 51 -6712.4 47 2651.4 < 2.2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
编辑:选项2
require(foreign)
voter <- read.dta("http://www.montana.edu/econ/cstoddard/562/panel_hw.dta")
reg1 <- lm(vaprate ~ gsp + midterm + regdead + WNCentral + South + Border
+ factor(state), data=voter)
library(plm)
reg1.fe <- plm(vaprate ~ gsp + midterm + regdead + WNCentral + South + Border,
data=voter, index = c("state","year"), model = "within")
reg1.pooling <- plm(vaprate ~ gsp + midterm + regdead + WNCentral + South + Border,
data=voter, index = c("state","year"), model = "pooling")
pFtest(reg1.fe, reg1.pooling)
输出:
F test for individual effects
data: vaprate ~ gsp + midterm + regdead + WNCentral + South + Border
F = 13.0712, df1 = 45, df2 = 498, p-value < 2.2e-16
alternative hypothesis: significant effects
这篇关于R(Panel Data)中固定效应的F检验的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!