生產函式
使用 prodest 和 estprod 包在 R 中估計 TFP
我正在寫我的學士論文,我真的需要關於 TFP 估計的幫助。到目前為止,我有一個數據集,其中包含增值 (va)、勞動力 (l)、資本 (k) 和材料 (m) 的對數值。初始數據集可在此處獲得: https ://drive.google.com/file/d/1aedWYABus1fQjKWxkOmYOmxv-qSja7hF/view?usp=sharing
到目前為止,我的程式碼是:
remove(list=ls()) library(plm) library(dplyr) library(ggplot2) library(prodest) library(estprod) library(broom) setwd("C:/Users/vadya/Desktop/baka") Data <- read.csv("LV.csv", header=TRUE, sep=",") str(Data) summary(Data) DataA <- Data %>% filter(NACE == 'A') %>% filter(VA > 0, L > 0, K > 0, M > 0) %>% mutate(l = log(L), va = log(VA), k = log(K), m = log(M)) wooldridge(data = DataA, va ~ l | k | m, id = "ID", time = "Year", bootstrap = TRUE, gross = FALSE) levinsohn_petrin(data = DataA, va ~ l | k | m, id = "ID", time = "Year", bootstrap = TRUE, gross = FALSE) olley_pakes(data = DataA, va ~ l | k | m, id = "ID", time = "Year", bootstrap = TRUE, gross = FALSE) mod1 = estprod::levinsohn_petrin(data = DataA, formula = va ~ l | k | m, id = "ID", time = "Year", reps = 20, gross = FALSE) mod1 mod2 = prodest::prodestLP(DataA$va, fX = DataA$l, sX = DataA$k, pX = DataA$m, idvar = DataA$ID, timevar = DataA$Year, opt='optim', exit = FALSE, tol = 1e-100) omega = prodest::omega(mod2)
到目前為止,問題如下 - 使用 estprod 包我只得到 l 和 k 估計的係數,沒有 m
A 在 StackExchange 上的另一個主題中看到了相同的討論,其中一個人問了同樣的問題,但他提供了他的部分數據,並且一切正常。但在我的情況下,問題是不同的。
有沒有人遇到同樣的問題,是否有可能解決這些問題,因為我才開始在 R 中學習 TFP,所以我非常感謝您的幫助和提供的任何影響。提前致謝!!!
您收到錯誤是因為您的 ID 是字元串,並且 prodestLP 函式在此處存在問題 - 在這種情況下導致錯誤地指定替換矩陣。
您可以通過以下方式解決此問題:
DataA$ID<-as.numeric(as.factor( DataA$ID))
將 ID 聲明為數字後,程式碼將起作用:
mod2 = prodest::prodestLP(DataA$va, + fX = DataA$l, + sX = DataA$k, + pX = DataA$m, + idvar = DataA$ID, + timevar = DataA$Year, + opt='optim', + exit = FALSE, + tol = 1e-100) > > omega = prodest::omega(mod2)
輸出:
summary(mod2) ------------------------------------------------------------- - Production Function Estimation - ------------------------------------------------------------- Method : LP ------------------------------------------------------------- fX1 sX1 Estimated Parameters : 0.107 0.458 (0.012) (0.052) ------------------------------------------------------------- N : 4397 ------------------------------------------------------------- Bootstrap repetitions : 20 1st Stage Parameters : 0.107 0.249 Optimizer : optim ------------------------------------------------------------- Elapsed Time : 0.02 mins ------------------------------------------------------------- summary(omega) V1 Min. :-3.452 1st Qu.: 1.428 Median : 1.842 Mean : 1.778 3rd Qu.: 2.202 Max. : 4.492
更新這些是我正在執行的包和上面顯示的程式碼之前的程式碼(我也在執行 R 版本 4.0.2 (2020-06-22)):
rm(list = ls()) Data <- read.csv("~/R studio/excercises in randomness/tfp2/Gmail/LV.csv") View(Data) pckg<-c("plm","readxl","dplyr","ggplot2", "broom","prodest", "estprod") #install.packages(c("plm","readxl","dplyr","ggplot2", "broom","prodest", "estprod")) lapply(pckg, require, character.only = TRUE) head(Data) summary(Data) DataA <- Data %>% filter(NACE == 'A') %>% filter(VA > 0, L > 0, K > 0, M > 0) %>% mutate(l = log(L), va = log(VA), k = log(K), m = log(M))