是否可以使用具有二进制因变量的面板数据集在R中进行回归?我熟悉使用glm用于logit和probit以及plm用于面板数据,但我不确定如何将两者结合起来.是否有任何现有的代码示例?
谢谢.
编辑
如果我能弄清楚如何提取plm()在进行回归时使用的矩阵,也会有所帮助.例如,您可以使用plm来执行固定效果,或者您可以使用适当的虚拟变量创建矩阵,然后通过glm()运行它.然而,在这样的情况下,自己生成假人很烦人,让plm为你做更容易.
亚别
我用来在表格中texreg报告几个随机效应模型(估计使用plm)的结果.
如何将Hausman检验的p值(将每个模型与其固定效应对应物进行比较)与所报告的拟合优度度量相加texreg?更一般地说,我如何报告额外的拟合度度量texreg?
虽然xtable()有一个sanitize.text.function参数允许使用特殊字符清理字符串以阻止LaTeX编译中断Sweave/knitr文档,但该包不会将该函数导出到用户空间.
如何清除像上下文asdf_text之外的字符串xtable,以便将其转换为类似的东西asdf\_text?(如果可能的话,我更喜欢一个小型,独立的解决方案.)
我一直在使用R的 " plm "包来进行面板数据的分析.在这个包中用于在"固定效应"或"随机效应"模型之间进行选择的重要测试之一称为Hausman类型.Stata也可以进行类似的测试.这里的要点是Stata要求首先估计固定效应,然后是随机效应.但是,我没有在"plm"包中看到任何这样的限制.所以,我想知道" plm "包是否首先具有默认的"固定效果",然后是"随机效应"第二.供您参考,我在下面提到了Stata和R中我为分析所遵循的步骤.
*
Stata Steps: (data=mydata, y=dependent variable,X1:X4: explanatory variables)
*step 1 : Estimate the FE model
xtreg y X1 X2 X3 X4 ,fe
*step 2: store the estimator
est store fixed
*step 3 : Estimate the RE model
xtreg y X1 X2 X3 X4,re
* step 4: store the estimator
est store random
*step 5: run Hausman test
hausman fixed random
#R steps (data=mydata, y=dependent variable,X1:X4: explanatory variables)
#step 1 …Run Code Online (Sandbox Code Playgroud) 我正在使用 plm 处理固定效应回归模型。
该模型如下所示:
FE.model <-plm(fml, data = data.reg2,
index=c('Site.ID','date.hour'), # cross section ID and time series ID
model='within', #coefficients are fixed
effect='individual')
summary(FE.model)
Run Code Online (Sandbox Code Playgroud)
“fml”是我之前定义的公式。我有很多自变量,所以这使它更有效率。
我想要做的是获取我的拟合值(我的 yhats)并将它们加入我的基础数据集;数据.reg2
我能够使用以下代码获得拟合值:
Fe.model.fitted <- FE.model$model[[1]] - FE.model$residuals
Run Code Online (Sandbox Code Playgroud)
但是,这只给了我一个拟合值的一列向量 - 我无法将它加入我的基本数据集。
或者,我尝试过这样的事情:
Fe.model.fitted <- cbind(data.reg2, resid=resid(FE.model), fitted=fitted(FE.model))
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误:
Error in as.data.frame.default(x[[i]], optional = TRUE) : cannot coerce class ""pseries"" to a data.frame
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以在我的基础数据集中获取我的拟合值吗?或者有人可以解释我遇到的错误,也许是一种解决方法?
我应该注意,我不想根据我的 beta 手动计算 yhat。对于该选项,我有太多的自变量,并且我定义的公式 (fml) 可能会更改,因此该选项将无效。
非常感谢!!
如何在回归线上获得一个点的CI?我很确定我应该使用confint(),但如果我试试这个
confint(model,param=value)
Run Code Online (Sandbox Code Playgroud)
它只是给了我相同的数字,就像我输入一样
confint(model)
Run Code Online (Sandbox Code Playgroud)
如果我尝试没有价值,它根本不给我任何价值.
我究竟做错了什么?
必须一个melt之前具有将其转换的数据帧?来自?melt:
data molten data frame, see melt.
Run Code Online (Sandbox Code Playgroud)
换句话说,是否绝对有必要在任何acast或dcast操作之前熔化数据帧?
考虑以下:
library("reshape2")
library("MASS")
xb <- dcast(Cars93, Manufacturer ~ Type, mean, value.var="Price")
m.Cars93 <- melt(Cars93, id.vars=c("Manufacturer", "Type"), measure.vars="Price")
xc <- dcast(m.Cars93, Manufacturer ~ Type, mean, value.var="value")
Run Code Online (Sandbox Code Playgroud)
然后:
> identical(xb, xc)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
所以在这种情况下,melt操作似乎是多余的。
在这些情况下,一般的指导规则是什么?您如何决定何时需要在*cast操作前熔化数据框?
我想知道这里有人可以帮助我.
我试图将beta GLM与betareg包相匹配,因为我的因变量是一个比例(500米网格大小的鲸鱼的相对密度)从0到1不等.我有三个协变量:
我的因变量有很多0,许多值太接近于0(如7.8e-014).当我尝试拟合模型时,以下错误显示:
invalid dependent variable, all observations must be in (0, 1).
Run Code Online (Sandbox Code Playgroud)
从我之前的讨论看来,这似乎是由数据集中的0引起的(我不应该有任何0或1).当我将所有0改为正定(例如0.0000000000000001)时,我得到的错误信息是:
Error in chol.default(K) :
the leading minor of order 2 is not positive definite
In addition: Warning messages:
1: In digamma(mu * phi) : NaNs produced
2: In digamma(phi) : NaNs produced
Error in chol.default(K) :
the leading minor of order 2 is not positive definite
In addition: Warning messages:
1: In betareg.fit(X, Y, Z, weights, offset, link, …Run Code Online (Sandbox Code Playgroud) 如何使用plm对象制作LaTeX表?
我一直在使用apsrtable为lm对象制作输出摘要的LaTeX表,但似乎找不到用plm做同样的简单方法.我正在使用plm和VcovBK()计算面板校正的标准误差,但随后必须进入乳胶并手动更改标准误差.