0

私は R (初心者) で損失回避モデルに取り組んでおり、3 つの列 (損失/利得値 (連続値と 0 または 1 (バイナリ) としてコード化された決定を持つ列の両方)) ドロップボックスを持つデータセットからいくつかのパラメーターを推定したいと考えています。 com/s/fpw3obrqcx8ld1q/GrandAverage.RData?dl=0 私が使用しているこのために使用する必要がある場合のコードの一部を以下に示します。

set <- GrandAverage[, 5:7];
  Beh.Parameters <- function (lambda, alpha, temp) {
 u = 0.5 * set$Gain^alpha + 0.5 * lambda * set$Loss^alpha
  GambleProbability <- 1 / (1 + exp(-temp * u))

  loglike <- set$Decision*log(GambleProbability) + 
    (1- set$Decision)*log(1-GambleProbability)   

  return(-sum(loglike))
 }

  temp_s <- 0.1 #runif(1, 0.1, 1)

  ML.estim1  <- mle(Beh.Parameters, start = list (lambda = 1, alpha = 1, temp = temp_s), nobs = length(set$Decision))
  ML.estim2  <- mle(Beh.Parameters, start = list(lambda = 0.1, alpha = 0.1,  temp = temp_s), nobs = length(set$Decision))

3 つのパラメーター (ラムダ、アルファ、温度) を推定するために mle 関数を使用します。アルファを使用せずに、たとえば次の出力を受け取ります。

ML.estim1 呼び出し: mle(minuslogl = Beh.Parameters, start = list(lambda = 1, temp = temp_s), nobs = length(set$Decision)) 係数: lambda temp 1.298023 1.041057

alpha パラメーターなしで実行しようとすると正常に動作しますが、含めると次の 2 つのエラーが発生しました。

optim(start, f, method = method, hessian = TRUE, ...) のエラー: 非有限差分値 [2] (最初の MLE の場合) optim(start, f, method = method, hessian のエラー) = TRUE, ...) : 'vmmin' の初期値は有限ではありません (2 番目の MLE の場合)

行列、特異値分解、BFGS などを再コーディングしようとしました。

4

1 に答える 1