生產功能
在 R 中使用 prodest 包估計生產函式時出錯
在 2012 年至 2018 年間,我有一個不平衡的小組,有 15063 家公司。
我正在使用此程式碼使用 Levinsohn & Petrin 方法估計生產函式:
levpet <- prodestLP(Y=base$c_y, fX=base$c_l, sX=base$c_k, pX=base$c_m, idvar=base$ruc, timevar = base$year, R=100 )
在哪裡
c_y
是增值的對數c_l
是工資的對數c_k
是資本的對數c_m
是材料的日誌ruc
是公司標識符(字元串)year
是一個數字。我得到的錯誤如下所示:
Error in `[[<-.data.frame`(`*tmp*`, i, value = c(42719L, 82109L, 82678L, : replacement has 469326 rows, data has 78221
我不知道這意味著什麼或我必須做些什麼。
我該如何解決?我的數據與這個非常相似:
data(chilean)
數據和
prodestLP
函式在裡面library(prodest)
這些是我在目前腳本中擁有的所有庫
library(tidyverse) library(dplyr) library(foreign) library(haven) library(readxl) library(stringr) library(expss) library(lubridate) library(prodest) library(plm)
提前致謝。
編輯:使用 prodest 包中的數據集,它執行得很好。這是一個例子:https ://rpubs.com/hacamvan/319728
我的數據集非常相似,只是更多的觀察結果和一個字元串 idvar。
我想我做到了。
我必須為每家公司分配一個數字 ID。然後它起作用了。
現在我只希望我可以導出回歸。
好吧,我發現錯誤意味著不適合數據集。我的數據集有 78221 個 obs。
一切都好像
data(chilean)
唯一的區別必須是每個公司的 id。所以我這樣做了:
list <- data.frame(table(base$ruc)) # so here i got the string id for every firm list$idvar <- seq(1:nrow(list)) # here i put a number for each firm from 1. list <- select(list, ruc, idvar) # We don't need freq var base <- base %>% left_join(y=list, by=c("ruc"="ruc")) #join it to the original dataset
然後它使用 using
base$idvar
而不是 using工作base$ruc
。