2

いくつかの被験者に対して心理測定テストを実施し、多変量プロビット モデルを作成しようとしています。

テストは次のように実施されました。

被験者 1 に 11 の異なる条件で、各条件につき 10 回、特定の刺激を与えました。回答 ( correct=1uncorrect=0) が登録されました。したがって、被験者 1 については、次の結果の表があります。

# Subj 1
      correct
cnt    1  0

  1    0 10
  2    0 10
  3    1  9
  4    5  5
  5    7  3
  6   10  0
  7   10  0
  8   10  0
  9    9  1
  10  10  0
  11  10  0

これは、Subj1 が条件 1 と 2 で 10 回不正解で、条件 10 と 11 で 10 回正解したことを意味します。その他の条件では、条件 3 から条件 9 にかけて応答が増加していました。

私は通常、次のコードを使用してデータを分析します。

prob.glm <- glm(resp.mat1 ~ cnt, family = binomial(link = "probit"))

ここresp.mat1に回答の表がありますcntが、 は対照的c(1,11)です。したがって、関数を使用してシグモイド曲線を描くことができpredict()ます。サブジェクト 1 のグラフは次のとおりです。

ここに画像の説明を入力

ここで、20 人の被験者に対して同じテストを行ったとします。最初のテーブルと同じように整理された 20 個のテーブルがあります。

私がやりたいのは、サブグループを比較することです。たとえば、次のようになりmale vs. femaleます。young vs. older等々。しかし、私は個人間の変動性を維持したいので、単純に 20 のテーブルを「追加」するのは間違っています。

glm()関数を使用するためにデータを整理するにはどうすればよいですか?

次のようなコマンドを記述できるようにしたい:

prob.glm <- glm(resp.matTOT ~ cnt + sex, family = binomial(link = "probit"))

そして 、 、 の曲線をグラフ化しsex=Mますsex=F

関数を使用しrbind()て一意のテーブルを作成し、 、Subj (1 to 20)Sexの列を追加してみましたAge。しかし、それは私には悪い解決策に見えるので、代替の解決策は本当に高く評価されます。

4

2 に答える 2

1

仕事に間違った機能を使用しているようです。glmerin packageの最初の例を確認してくださいlme4。それはあなたが望むものにかなり近づきます。herd件名番号に置き換える必要がありますが、次のようにするようにしてください

mydata$subject = as.factor(mydata$subject)

数値の被験者番号がある場合。

# Stolen from lme4
library(lattice)
library(
xyplot(incidence/size ~ period|herd, cbpp, type=c('g','p','l'),
       layout=c(3,5), index.cond = function(x,y)max(y))
(gm1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd),
              data = cbpp, family = binomial))
于 2012-07-17T17:50:47.533 に答える
0

mlogitすべてのもののライブラリには、多変量プロビット コマンドがあります。ここで必要なデータ構造の例を確認できます。

https://stats.stackexchange.com/questions/28776/multinomial-probit-for-varying-choice-set

于 2012-07-18T10:48:15.883 に答える