2014-10-12 152 views
0

我想运行带有加权数据的OLS的固定效应模型。R:如何估算带权重的固定效应模型

由于可能存在一些混淆,我的意思是说,在经济学家通常暗示的意义上,我使用了“固定效应”,即“模型内”,或者换句话说个体特定的效应。我实际上拥有的是“多层次”数据,即对个人的观察,并且我想控制他们的起源区域(并且具有相应的聚集标准错误)。

的样本数据:

library(multilevel) 
data(bhr2000) 
weight <- runif(length(bhr2000$GRP),min=1,max=10) 
bhr2000 <- data.frame(bhr2000,weight) 
head(bhr2000) 
    GRP AF06 AF07 AP12 AP17 AP33 AP34 AS14 AS15 AS16 AS17 AS28 HRS RELIG weight 
1 1 2 2 2 4 3 3 3 3 5 5 3 12  2 6.647987 
2 1 3 3 3 1 4 3 3 4 3 3 3 11  1 6.851675 
3 1 4 4 4 4 3 4 4 4 2 3 4 12  3 8.202567 
4 1 3 4 4 4 3 3 3 3 3 3 4 9  3 1.872407 
5 1 3 4 4 4 4 4 3 4 2 4 4 9  3 4.526455 
6 1 3 3 3 3 4 4 3 3 3 3 4 8  1 8.236978 

的一种模式,我想估计是:

AF06_ij = beta_0 + beta_1 AP34_ij + alpha_1 * (GRP == 1) + alpha_2 * (GRP==2) +... + e_ij 

这里我指的是具体的indidividuals和j是指他们所属的组。

此外,我想观察加权weight(抽样权重)。

但是,我想得到“聚集的标准错误”,以反映可能的GRP特定的异方差性。换句话说,E(e_ij)=0但是Var(e_ij)=sigma_j^2其中sigma_j对于每个GRP j可以是不同的。

如果我理解正确,nlmelme4只能估计随机效应模型(或所谓的混合模型),而不能估计内部的固定效应模型。

我试过包装plm,这对于我想做的事情来说看起来很理想,但它不允许重量。任何其他想法?

+0

问题没有数据,没有具体的问题描述,并且要求推荐一个备用包和一个已经工作的例子,至少对于SO来说太“模糊”了。您应该在征集此类问题的其中一个场所得到您的一般统计建议。 – 2014-10-12 16:52:36

+0

你说得对。我修改了我的问题,使其更清楚我想做什么。谢谢! – Peutch 2014-10-13 13:21:42

+0

下面是关于固定/随机效应的一些有趣阅读。 http://andrewgelman.com/2005/01/25/why_i_dont_use/ – miles2know 2014-10-18 16:56:16

回答

0

查看lfe软件包---它具有econ风格的固定效果,您可以指定聚类。

+0

谢谢约翰,但我找不到使用'lfe'指定采样权重的方法。我错过了什么? – Peutch 2014-10-12 14:10:50

2

我认为这更多的是一个堆栈交换问题,但除了使用模型权重的固定效果之外;您不应将OLS用于有序的分类响应变量。这是一种有序的逻辑建模类型的分析。所以下面我用你提供的数据来适应其中的一个。

要明确我们有一个有序的分类响应“AF06”和两个预测指标。第一个“AP34”也是一个有序的分类变量;第二个“GRP”是你的固定效应。所以一般来说,你可以通过强迫变量把RHS中的一个因素强制成一个固定的效果......(我真的试图远离统计理论,因为这不是它的地方,所以我可能会在我所说的一些事情中不准确)

下面的代码使用polr(比例赔率逻辑回归)函数拟合一个有序的逻辑模型。我试图根据模型规范来解释你要做的事情,但是在一天结束时,OLS并不是正确的方向。对coefplot的呼叫将有一个非常拥挤的y轴,我只想提出一个非常基本的开始,你可能会解释这一点。我会尝试以更精确的方式将其视觉化。回到解释中......您需要努力解决这个问题,但我认为这通常是正确的方法。我能想到的最好的资源是Gelman和Hill的“使用回归和多级/分层模型进行数据分析”的第5章和第6章。这是一个很好的资源,所以我真的建议你阅读整篇文章,并试着掌握它,如果你对这种分析感兴趣的话。


    library(multilevel) # To get the data 
    library(MASS) # To get the polr modeling function 
    library(arm) # To get the tools, insight and expertise of Andrew Gelman and his team 

    # The data 
    weight <- runif(length(bhr2000$GRP),min=1,max=10) 
    bhr2000 <- data.frame(bhr2000,weight) 
    head(bhr2000) 

    # The model 
    m <- polr(factor(AF06) ~ AP34 + factor(GRP),weights = weight, data = bhr2000, Hess=TRUE, method = "logistic") 
    summary(m) 
    coefplot(m,cex.var=.6) # from the arm package 
相关问题