生產功能

在 R 中使用 prodest 包估計生產函式時出錯

  • August 10, 2021

在 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

然後它使用 usingbase$idvar而不是 using工作base$ruc

引用自:https://economics.stackexchange.com/questions/47144