小编lan*_*oni的帖子

具有交互项的固定效果回归导致错误

我正在尝试估计一个面板数据集,其中包含一个表示路线的地理区域(LoadArea,DischargeArea)的交互项.使用固定效果规范时,它不喜欢交互项(LoadArea*DischargeArea)并在汇总回归时产生以下错误:

mult_fe<-plm(log(DayRate)~LoadArea *DischargeArea + factor(Laycan.Day.Diff) + CapUtil + Age
+ I(Age^2) + WFRDWT + lag_BDTI, data=mult_reg1,model="within");


summary(mult_fe)
Error in crossprod(t(X), beta) : non-conformable arguments
Run Code Online (Sandbox Code Playgroud)

这在使用lm函数替换plm的正常OLS回归中工作正常.问题是为什么它不适用于我的模型?

r plm

6
推荐指数
2
解决办法
6798
查看次数

R/plm:由于错误而无法估计随机效应模型(系统在计算上是奇异的)?

我想使用 PLM 包估计 R 中的一些面板数据模型。由于理论知识有限,我严格遵循“计量经济学学院”(代码此处)的指示。我根据我的数据(自己的因变量/独立变量)定制了该代码,但没有更改所有其他语法/公式。

现在问题来了:

除随机效应模型外,所有模型都可以估计,并且它们的结果也可以总结和解释。这里我收到以下错误消息:

Error in solve.default(crossprod(X.m)) : 
  system is computationally singular: reciprocal condition number = 9.57127e-023
Run Code Online (Sandbox Code Playgroud)

有谁可以给​​我提示这个错误的实际含义吗?根本原因可能是什么?我必须如何更正代码才能获得结果?

编辑: 更准确地说,这是我使用的 R 代码部分:

# read in data
mydata<- read.csv2("Panel.csv")
attach(mydata)

# define dependant variable
    sd1 <- cbind(sd)

# define independant variable
x <- cbind(ratio1, ratio2, ratio3, ratio4, mean)

# Set data as panel data
pdata <- plm.data(mydata, index=c("id","t"))

# Pooled OLS estimator
pooling <- plm(sd1 ~ x, data=pdata, model= "pooling")
summary(pooling)

# Between estimator
between <- …
Run Code Online (Sandbox Code Playgroud)

random regression r panel plm

6
推荐指数
1
解决办法
4235
查看次数

三个或更多集合的可能性

考虑以下几组概率(三个事件不相互排斥):

  • 0.05625成功,0.94375失败
  • 0.05625成功,0.94375失败
  • 0.05625成功,0.94375失败

如何计算至少一个事件发生的概率(即工会)?

如果可能的话,我更喜欢一个通用的,独立的解决方案,它也可以处理4个或更多事件.在这种情况下,我正在寻找的答案是:

0.05625 + 0.05625 + 0.05625 -
0.05625*0.05625 - 0.05625*0.05625 - 0.05625*0.05625 +
0.05625*0.05625*0.05625
##[1] 0.1594358
Run Code Online (Sandbox Code Playgroud)

我的问题最终比标题更广泛,因为我正在寻找可以计算union,intersection(0.05625*0.05625*0.05625 = 0.0001779785),没有事件发生(1 - 0.1594358 = 0.8405642)或恰好发生一个事件(0.150300)的概率的函数.换句话说,这个在线连接三个事件计算器的R解决方案.我已经查看了这个prob包,但是对于这种简单的用例来说,它似乎有一个太复杂的界面.

r probability set-intersection set-union

6
推荐指数
1
解决办法
1637
查看次数

R中的固定效应回归(具有非常多的虚拟变量)

当虚拟变量的数量导致模型矩阵超过R最大向量长度时,是否有一种简单的方法可以在R中进行固定效应回归?例如,

> m <- lm(log(bid) ~ after + I(after*score) + id, data = data)
Error in model.matrix.default(mt, mf, contrasts) : 
cannot allocate vector of length 905986769
Run Code Online (Sandbox Code Playgroud)

其中id是一个因子(并且是导致上述问题的变量).

我知道我可以通过并取消所有数据,但这会抛出标准错误(是的,你可以用手动计算SE的"df"调整,但我想最小化我的概率引入新的错误.我看过plm软件包,但它似乎只针对具有时间组件的经典面板数据而设计,这不是我的数据结构.

r plm

5
推荐指数
1
解决办法
1万
查看次数

Rama中的Fama MacBeth标准错误

有谁知道是否有一个包在R中运行Fama-MacBeth回归并计算标准错误?我知道该sandwich软件包及其评估Newey-West标准错误以及提供聚类功能的能力.但是,我没有看到有关Fama-MacBeth的任何事情.

regression r standard-error panel-data

5
推荐指数
1
解决办法
8316
查看次数

为什么Rle不接受因素作为输入?

我无法在上传递此rle功能data.frame。函数在另一组上效果很好:

fgroup <- aggregate(fevents2[,3:14], list(weeks = fevents2[, 1]), function(x) rle(x)$values)
Run Code Online (Sandbox Code Playgroud)

产生错误:

Error in rle(x) : 'x' must be an atomic vector
Run Code Online (Sandbox Code Playgroud)

样本数据:

> dput(fevents2[1:20,])
structure(list(weeks = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("1",
"2", "3", "4", "5", "6", "7"), class = "factor"), A1M.Date = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, …
Run Code Online (Sandbox Code Playgroud)

r r-factor

5
推荐指数
1
解决办法
1558
查看次数

测试面板数据中的多重共线性R

我正在使用plm包中运行面板数据回归,R并希望控制解释变量之间的多重共线性.
我知道-package中有vif()函数car,但据我所知,它不能处理面板数据输出.
plm可以做其他的诊断,如单位根测试,但我发现没有方法来计算多重.

有没有办法计算类似的测试vif,或者我可以只将每个变量视为时间序列,省略面板信息并使用car包运行测试?

我无法透露数据,但问题应与所有面板数据模型相关.
该维度大约为1,000个观测值,超过50个时间段.
我使用的代码如下所示:

pdata <- plm.data(RegData, index=c("id","time"))
fixed <- plm(Y~X, data=pdata, model="within")
Run Code Online (Sandbox Code Playgroud)

然后

vif(fixed) 
Run Code Online (Sandbox Code Playgroud)

返回错误.


先感谢您.

regression r panel-data plm

5
推荐指数
1
解决办法
7937
查看次数

为什么不能在`dcast`中有几个`value.var`?

为什么不能在一个有多个变量传递给value.vardcast?来自?dcast:

value.var存储值的列的名称,请参阅guess_value以了解默认策略.

它没有明确指出只能将一个变量作为值传递给它.但是,如果我尝试,那么我得到一个错误:

> library("reshape2")
> library("MASS")
> 
> dcast(Cars93, AirBags ~ DriveTrain, mean, value.var=c("Price", "Weight"))
Error in .subset2(x, i, exact = exact) : subscript out of bounds
In addition: Warning message:
In if (!(value.var %in% names(data))) { :
  the condition has length > 1 and only the first element will be used
Run Code Online (Sandbox Code Playgroud)

那么有没有理由强加这种限制?是否有可能解决这个问题(也许使用reshape等)?

r dataframe reshape2

5
推荐指数
3
解决办法
7733
查看次数

使用plm(具有固定效果)的R中的聚类标准错误

我试图在R的plm包中运行具有固定效果的回归model = 'within',同时具有聚类标准错误.使用Cigar来自的数据集plm,我正在运行:

require(plm)
require(lmtest)
data(Cigar)
model <- plm(price ~ sales + factor(state), model = 'within', data = Cigar)
coeftest(model, vcovHC(model, type = 'HC0', cluster = 'group'))

  Estimate Std. Error t value Pr(>|t|)    
sales  -1.21956    0.21136 -5.7701 9.84e-09
Run Code Online (Sandbox Code Playgroud)

这与我使用Stata(将Cigar文件编写为.dta)得到的结果略有不同:

use cigar

xtset state year

xtreg price sales, fe vce(cluster state)


price   Coef.   Std. Err.   t   P>t [95% Conf.  Interval]

sales   -1.219563   .2137726    -5.70   0.000   -1.650124   -.7890033
Run Code Online (Sandbox Code Playgroud)

即,标准误差和T统计量是不同的.我尝试用不同的"类型"重新运行R代码,但没有一个给出与Stata相同的结果.我错过了什么吗?

r standard-error stata plm

5
推荐指数
2
解决办法
4969
查看次数

为什么这个调用`lm(...,subset)的简单函数失败了?

我正在开发一个包含调用的自定义函数lm(),但由于某种原因,函数失败了.我无法理解它失败的原因.

考虑将此示例简化为简单:

myfun <- function(form., data., subs., ...){
    lm(form., data., subs., ...)
}
Run Code Online (Sandbox Code Playgroud)

这将最终出错:

myfun(mpg ~ cyl + hp, mtcars, TRUE)
## Error in eval(expr, envir, enclos) : object 'subs.' not found
Run Code Online (Sandbox Code Playgroud)

lm()直接使用将工作得很好:

lm(mpg ~ cyl + hp, mtcars, TRUE)
## 
## Call:
## lm(formula = mpg ~ cyl + hp, data = mtcars, subset = TRUE)
## 
## Coefficients:
## (Intercept)          cyl           hp  
##    36.90833     -2.26469     -0.01912  
Run Code Online (Sandbox Code Playgroud)

我试过调试,但仍然无法解决问题的根源.为什么自定义功能失败?显然subs. 被提供给函数...


编辑:

虽然下面提出的大多数解决方案都有助于这个简单的情况,但如果我添加一个简单的扭曲,该功能仍将失败.例如,expand.model.frame()依赖于公式的环境,但如果我使用正常的评估解决方案则会失败: …

r function

5
推荐指数
2
解决办法
477
查看次数