質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Q&A

0回答

1786閲覧

Rとstanでの階層モデルについての質問

nanzan

総合スコア0

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

0グッド

0クリップ

投稿2021/09/17 01:20

前提・実現したいこと

stanとRでロジスティック回帰の階層モデルを作っています。
以下のエラーメッセージが発生しました。どこが良く無いか分からないので(変数「word」は定義しているのですが・・)、アドバイスをお願いします

発生している問題・エラーメッセージ

Error in mod$fit_ptr() :
Exception: variable does not exist; processing stage=data initialization; variable name=word; base type=int (in 'model6a2ffdde6d2_sample' at line 8)

failed to create the sampler; sampling not done

stanのコード(sample.stan)

data {
int<lower=0> I ; // データポイントの数
int<lower=0> N ; //単語の数
int<lower=0> C ; //被験者の数

int<lower=0, upper=1> resource[N] ; // ダミー変数(1か0)

int<lower=1, upper=N> word[I] ; //単語id
int<lower=1, upper=C> subj[I] ; //被験者id

int<lower=0, upper=1> rating[I] ; // 評価値(1か0)

}

parameters {
real Intercept; // 切片
real b_resource; // 係数

real b_w[N] ; // ランダム効果(語)
real b_s[C] ; // ランダム効果(人)
}

transformed parameters{
real x_w[N];
real x_s[C];

real x[I];
real q[I];

for (n in 1:N){
x_w[n] = b_resource * resource[n] + b_w[n];
}

for (c in 1:C){
x_s[c] = b_s[c];
}

for (i in 1:I){
x[i] = Intercept + x_w[word[i]] + x_s[subj[i]];
q[i] = inv_logit(x[i]);

}
}

model {
for (n in 1:N){
b_w[n] ~ normal(0,1);
}

for (c in 1:C){
b_s[c] ~ normal(0,1);
}

for (i in 1:I){
rating[i] ~ bernoulli( q[i]) ;
}

}

### 実行するRのコード d1 <- read.csv("data1.csv") d2 <- read.csv("data2.csv") resource_dummy <- as.numeric(d1$type == "resource") I=nrow(d2) ## データポイント数 N = length(unique(d2$term)) ## 単語数 C = length(unique(d2$human)) ## 被験者数 data_list <- list ( I=I, N=N, C=C, word = d2$term, subj = d2$human, resource = resource_dummy, rating = d2$rating ) result <- stan( file = "sample.stan", data = data_list ) ### 補足情報(FW/ツールのバージョンなど) 松浦健太郎「StanとRでベイズ統計モデリング」共立出版 のp.143-145をほぼそのまま利用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問