CES生産機能適用問題


2

私は現在、Henningsen / Henningsen(2011)によるRのmicEconCESパッケージを使っていくつかの見積もりをしようとしています。私の問題は、私がRにあまり馴染みがなく、パッケージを使って見積もりを取得するために自分のデータセットを実装しようとしていることです。この論文の著者らは、このデータセットを見積もり用に作成しました。

R> set.seed( 123 ) 
R> cesData <- data.frame(x1 = rchisq(200, 10), x2 = rchisq(200, 10), x3 = rchisq(200, 10), x4 = rchisq(200, 10) ) 
R> cesData$y2 <- cesCalc( xNames = c( "x1", "x2" ), data = cesData, + coef = c( gamma = 1, delta = 0.6, rho = 0.5, nu = 1.1 ) ) 
R> cesData$y2 <- cesData$y2 + 2.5 * rnorm( 200 )
R> cesData$y3 <- cesCalc(xNames = c("x1", "x2", "x3"), data = cesData, coef = c( gamma = 1, delta_1 = 0.7, delta = 0.6, rho_1 = 0.3, rho = 0.5, + nu = 1.1), nested = TRUE ) 
R> cesData$y3 <- cesData$y3 + 1.5 * rnorm(200) 
R> cesData$y4 <- cesCalc(xNames = c("x1", "x2", "x3", "x4"), data = cesData, coef = c(gamma = 1, delta_1 = 0.7, delta_2 = 0.6, delta = 0.5, rho_1 = 0.3, rho_2 = 0.4, rho = 0.5, nu = 1.1), nested = TRUE ) 
R> cesData$y4 <- cesData$y4 + 1.5 * rnorm(200)

最初の行は乱数ジェネレータの「シード」を設定するので、これらの例はまったく同じデータセットで複製できます。 2行目は、4つの入力変数(x 1、x 2、x 3、およびx 4と呼ばれる)を持つデータセットを作成します。各変数は、200個の観測値を持ち、10自由度のランダムなχ2分布から生成されます。 3番目、5番目、および7番目のコマンドは、micEconCESパッケージに含まれている関数cesCalcを使用して、2、3、および4入力(それぞれy2、y3、およびy4と呼ばれる)のCES関数の確定的出力変数を計算します。 CES生産機能を与えられた。今私の論文では、資本と労働力を伴う2つのインプットケースについて、米国のCES関数を総計レベルで推定しようとしています。そこで私がしたのは、1990 - 2015年の世界銀行のデータベースからデータを集めたところです。そこでは資本に総固定資本形成、そして労働には総労働力を使いました。

著者らはf.e.を行いました。次のような非線形推定

R> cesNls <- nls( y2 ~ gamma * ( delta * x1^(-rho) + (1 - delta) * x2^(-rho) )^(-phi / rho), + data = cesData, start = c( gamma = 0.5, delta = 0.5, rho = 0.25, phi = 1 ) ) 
R> print( cesNls )

今、私はData_Extract_From_World_Development_Indicatorsと呼ばれる私自身のデータセットのために全く同じものが欲しいです。だから私が最初にしたのは

R> ceslan <- cesCalc( xNames = c( "GrossFixedCapitalFormation", "LaborForce" ), data = Data_Extract_From_World_Development_Indicators, coef = c( gamma = 1, delta = 0.6, rho = 0.5, nu = 1.1 ) )

だから私は複製した

R> cesData$y2 <- cesCalc( xNames = c( "x1", "x2" ), data = cesData, coef = c( gamma = 1, delta = 0.6, rho = 0.5, nu = 1.1 ) )

データセットの名前を変更し、x1とx2を資本と労働の2つの変数に置き換えました。

その後、私は非線形推定をしようとしました

R> cesulan <- nls(y2 ~ gamma * (delta * GrossFixedCapitalFormation^(-rho) + (1-delta)*LaborForce^(-rho))^(-phi / rho), data = Data_Extract_From_World_Development_Indicators, start = c(gamma = 0.5, delta = 0.5, rho = 0.25, phi = 1) )

今ここに私の問題があります:私は私のデータセットでy2であることになっている変数がわからない。式の中でy2〜gamma * ...が残りの用語に対してプロットされていることがわかりますが、そこにプラグインする必要がある値の種類がわかりません。誰かアドバイスがありますか?

回答:


0

あなたのy2は、それらの入力に関連して生成された出力である必要があります。 CES生産機能があり、入力として世界銀行の国データを使用していることを考えると、その特定の年の国の出力が必要です。通常、国レベルでの産出量の尺度としてGDPを使用します。あなたはそれを得ることができます。世界銀行から。


そのため、GDPという列を追加しましたが、上記の式でy2をGDPに置き換えたときは、 cesulan <- nls(GDP ~ gamma * (delta * GrossCapitalFormation^(-rho) + (1-delta)*LaborForce^(-rho))^(-phi / rho), data = Popular_Indicators_2_, start = c(gamma = 0.5, delta = 0.5, rho = 0.25, phi = 1) ) 二項演算子のエラー非数値引数が返されます。今何が悪いの?
macro123

それは経済学よりもスタックオーバーフローの問題です。いずれにせよ、文字に数字を追加するような無意味な操作を実行しようとすると、通常エラーが発生します。それを引き起こす可能性がある多くの可能性がありますが、私の最初のチェックはインポートされたデータが実際に数値であるかどうかです。
Maarten Punt

うーん、でも私は世界銀行から得た労働力、総資本形成、そしてGDPのすべてのデータが明らかに数値的に正しいので奇妙なのか?
macro123

確かにしかしそれはチェックすることを傷つけません。特に、世界銀行のデータにNAのシンボルが含まれていて、Rがそのように認識していない場合は特にそうです。その場合、それは文字だと思い、その列のすべてのデータを文字に変換します。
Maarten Punt

あなたは正しい数字が文字として定義されたので、私はそれを数字に変えました Popular_Indicators_2_ <- read_excel("~/Downloads/Popular Indicators (2).xlsx", + col_types = c("numeric", "text", "text", + "text", "numeric", "numeric", "numeric", + "numeric")) だから私は再びコードを実行しました cesulan <- nls(GDP ~ gamma * (delta * GrossCapitalFormation^(-rho) + (1-delta)*LaborForce^(-rho))^(-phi / rho), data = Popular_Indicators_2_, start = c(gamma = 0.5, delta = 0.5, rho = 0.25, phi = 1) )
macro123
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.