2013-04-11 19 views
8

Tôi đang gặp sự cố khi thiết lập mô hình dữ liệu bảng điều khiển.R: hiệu ứng cố định năm - năm và dữ liệu quý

Dưới đây là một số dữ liệu mẫu:

library(plm) 

id <- c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2) 
year <- c(1999,1999,1999,1999,2000,2000,2000,2000,1999,1999,1999,1999,2000,2000,2000,2000) 
qtr <- c(1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4) 
y <- rnorm(16, mean=0, sd=1) 
x <- rnorm(16, mean=0, sd=1) 

data <- data.frame(id=id,year=year,qtr=qtr,y_q=paste(year,qtr,sep="_"),y=y,x=x) 

tôi chạy hồi quy sau đây sử dụng 'id' như chỉ số cá nhân và 'năm' như chỉ số thời gian:

reg1 <- plm(y ~ x, data=data,index=c("id", "year"), model="within",effect="time") 

Thật không may, tôi nhận được lỗi sau:

duplicate couples (time-id) Error in pdim.default(index[[1]], index[[2]]) :

Vì vậy, để khắc phục điều đó, tôi sử dụng biến kết hợp là 'y_ q ':

reg1 <- plm(y ~ x, data=data,index=c("id", "y_q"), model="within",effect="time") 

Nhưng đây là vấn đề của tôi - Tôi chỉ muốn có hiệu ứng cố định hàng năm chứ không phải năm quý.

Có cách nào khác để giải quyết vấn đề cũ hơn thay vì tạo chỉ mục tiem 'y_q' không?

Xin cảm ơn trước sự giúp đỡ của bạn!

+0

cũng https://stackoverflow.com/questions/28789767/how-to-include-a-year-fixed-effect-in-a-year thấy -quarter-panel-data-in-r-using-plm – Helix123

Trả lời

3

Trong cài đặt bảng điều khiển, bạn thường không có một số giá trị trùng lặp cho mỗi cặp vợ chồng id năm.

Trong dữ liệu quaterly của bạn sẽ khó để tính toán một mô hình hiệu ứng cố định năm mà không tổng hợp dữ liệu của bạn để làm cho chúng hàng năm.

Kiểm tra các ví dụ here để xem cách dữ liệu của bạn nên được định dạng để lập mô hình dữ liệu bảng điều khiển.

Đây là oneway để làm điều đó:

require(plyr) 
yeardata <- ddply(data, .(year, id), summarize, y = mean(y), 
               x = mean(x)) 


require(plm) 
reg1 <- plm(y ~ x, data = yeardata, index = c("id", "year"), model = "within", effect = "time") 
fixef(reg1) 

##  1999  2000 
## 0.2641997 0.0041193 
Các vấn đề liên quan