首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R plm包中有关长度相同但内容不相同的索引的警告消息

R plm包中有关长度相同但内容不相同的索引的警告消息
EN

Stack Overflow用户
提问于 2020-11-13 09:34:58
回答 2查看 812关注 0票数 2

当我对模型执行“汇总()”时,我从R中的plm包中得到警告消息:

1:在Ops.pseries(y,bX)中: pseries的索引具有相同的长度但不相同的内容:结果被指定为第一个操作数的索引2:在Ops.pseries(y,bX)中: pseries的索引具有相同的长度但不相同的内容:结果被指定为第一个操作数的索引

我使用了以下代码:

代码语言:javascript
复制
library(dplyr)
library(lubridate)
library(plm)

data <- data.frame(ID = rep(c("123456", "234567", "345678", "456789", "567890", "678901", "789012", "890123", "901234","9012345"), each = 24),
                 month = rep(seq(dmy("01.01.2019"), dmy("01.12.2020"), by = "1 months"),10), group = rep(c(rep(T, 12), rep(F, 12)), 10),
                 temperature = runif(24*10, 0, 1)) %>% 
group_by(ID, group) %>% mutate(consumption = ifelse(group, runif(12, 1,2), runif(12,2,3))) 

pdata <- pdata.frame(x = data, index = c("ID", "month"))
model <- plm(formula = consumption ~  group + temperature, data = pdata, effect = "individual", model = "within") 
summary(model)
## Warnmeldungen:
## 1: In Ops.pseries(y, bX) :
##  indexes of pseries have same length but not same content: result was assigned first operand's index
## 2: In Ops.pseries(y, bX) :
##  indexes of pseries have same length but not same content: result was assigned first operand's index

我的想法是,这可能是两个指数之一。但是,当我使用"ID“或”月份“作为索引时,会收到相同的警告消息。

数据提要的摘录如下:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-16 10:21:45

看起来,plmpdata.frame不喜欢在估计之前对数据执行某种转换而注入到数据帧中的一些修改。

确保像这样向pdata.frame提供干净的数据帧,代码运行良好:

代码语言:javascript
复制
fdata <- data.frame(data)
pdata <- pdata.frame(x = fdata, index = c("ID", "month"))
model <- plm(formula = consumption ~  group + temperature, data = pdata, effect = "individual", model = "within") 
summary(model)

## Oneway (individual) effect Within Model
## 
## Call:
## plm(formula = consumption ~ group + temperature, data = pdata, 
##     effect = "individual", model = "within")
## 
## Balanced Panel: n = 10, T = 24, N = 240
## 
## Residuals:
##      Min.   1st Qu.    Median   3rd Qu.      Max. 
## -0.581113 -0.237459  0.031184  0.252256  0.541147 
## 
## Coefficients:
##              Estimate Std. Error  t-value Pr(>|t|)    
## groupTRUE   -1.020820   0.038559 -26.4743   <2e-16 ***
## temperature -0.029801   0.064738  -0.4603   0.6457    
## ---
## Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
## 
## Total Sum of Squares:    82.792
## Residual Sum of Squares: 20.318
## R-Squared:      0.75459
## Adj. R-Squared: 0.74275
## F-statistic: 350.521 on 2 and 228 DF, p-value: < 2.22e-16
票数 3
EN

Stack Overflow用户

发布于 2021-01-18 15:22:47

另一种解决问题的方法是添加ungroup()。

因此,如下

代码语言:javascript
复制
group_by(ID, group) %>% mutate(consumption = ifelse(group, runif(12, 1,2), runif(12,2,3)))

应该变成

代码语言:javascript
复制
group_by(ID, group) %>% mutate(consumption = ifelse(group, runif(12, 1,2), runif(12,2,3))) %>% ungroup()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64818531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档