Hiroshi Shimizu
Latest answers

いつも勉強させて頂いております。SEMについてなのですが、ある潜在変数Aから別の潜在変数Bにパスを引いた場合、潜在変数AとBに間に残差共分散(residual covariance)を設定することはモデルとして正しくないと考えて良いでしょうか。ご教授頂けると幸いです。

toukei_beginner

パスと共分散を同時に引くのは,一般的にはあまりしないとおもいます。

View more

いつもHADにお世話になっております。この度Office2016の購入を考えているのですが、HADは2016でも使用できますでしょうか?よろしくお願いいたします。

HADのご利用ありがとうございます。2016でも動きます。むしろ2013よりも相性はいいようです。

View more

パス解析の論文でレビュアーにモデルフィットを求められました。モデルは独立変数2つ媒介変数1つ従属変数(DV)1つ統制変数(C)5つです(Cをモデルに含めず従属変数の残差変数(DV/C)を従属変数とした図を提示していましたが、以前別のレビュアーにCも図に含めるよう言われました)。統制変数のパスは従属変数にのみ刺し、非有意のパスを全て外したところフィットが悪く、原因を調べたら統制変数と独立変数・媒介変数の間の有意な相関がありました。複雑なモデルにしたくなく(共変を入れたくない)、統制変数は重要でないため、フィット計算でモデルから統制変数を外し上記DV/CをDVの代わりに用いることは許されますか?

共変量の効果もモデルの再現性に影響しますので、共変量を適合度の計算から外すのは妥当な方法ではないと思います。

View more

いつもHADを使わせていただいております。EXCELのシート上で右クリックすると表示されるHAD用のメニューにつきまして、諸事情あり削除をしたいのですが、方法はありますでしょうか。VBAでコードを探しましたが、それらしきものが見つかりません。基本事項かとは存じますが、ご回答いただければ幸いです。

HADの設定ボタンから、「右クリック」というタブを選ぶと、右クリックのメニューの編集ができます。

View more

マルチレベルSEMについて質問させて頂きます。説明変数にも級内相関がある場合、WithinとBetweenレベルに分離させて分析することが勧められていますが、Withinレベルで測定された説明変数に交互作用項が含まれる場合も、上記のように分析し、交互作用の下位検定を行うことができるのでしょうか。突然恐縮ですが、ご回答頂けますと有難く存じます。

できます。やり方も一般的な回帰分析のそれと同じようにできます。

View more

GLM を選択してる状態でHADで媒介分析を選ぶと、例えばポアソン分布の媒介分析という様に表示されます。これはポアソン分布の媒介分析が可能ということでしょうか。

そうです。ただ、分布を選択できるのは従属変数だけで、媒介変数は正規分布が仮定されます。

View more

初めまして、私はある大学の学部生で多次元IRTについての研究をしています。 そんな時に清水先生の「Stanで多次元項目反応理論」の記事を見つけて、勉強させていただきました。 そこで質問なのですが、この記事で出したパラメータから、Rパッケージmirtのitemplot()の様な図を作る事は可能でしょうか?もしも可能ならお聞きしたいなと思っております。 お忙しいところ申し訳ありません。

すみません,あんまりmirtパッケージついて詳しくないのでよくわかりません。でも,記事にあるパラメータを使ってモデルに合わせて式を書けば,IRFを描いたり,項目特性曲線とか,テスト情報関数などを作ることはそんなに難しくないはずです。それらを描くのに足りないものは多分ないです。研究頑張ってください。

View more

ごぶさたしております。 Rでlme4のライブラリのglmer(またはlmer)を使ってデータの分析をしています。 0-1のデータで交互作用ありのモデルで交互作用のところに意味のありそうな違いが出ました。 ざっくりいうと、glmer(cbind(correct, total-correct)~hoge1*hoge2+(1|random), data=data,family=binomial) みたいな感じです。 hoge1は例えば東と西、hoge2は夏と冬にしましょうか。 交互作用が「有意」っぽいので、夏における東と西のところに差があるかを見たいのです。あるいは、東における夏と冬の差。

ichipoohmt (bot)

現状のモデルの結果は,切片についてはhoge1とhoge2が0の場合の結果が出ていることになります。またhoge1の効果はhoge2が0の場合,hoge2についてもhoge1が0の場合の高価が出力されています。
なので,一番確実(でもちょっと面倒ですが)なのは,0と1の上限ごとの割り振りを変えれば,それぞれの場合の結果を見ることができると思います。

View more

looパッケージでwaicを出力するとelpd_waic 、p_waic、waicの3種の値が得られますが、どれを参照したらよいでしょうか。

CRANにあるパッケージにはちゃんとマニュアルがついているので、それを読めばわかると思います。

View more

http://norimune.net/2918 ですが、変分ベイズではなくMCMCで解析すると推定値がかなり小さくなります。これは、MCMCの結果を優先させるという解釈になりますか。よろしくご教示お願いいたします。

MCMCが上手く収束していれば、MCMCのほうが推定値は正しいです。

View more

http://norimune.net/2885 の最後のバージョンのモデルを確認したところデータブロックにvector[P] x[N];がありました。この場合WAICを出力するためにgenerated quantitiesブロックにコードを追加するだけでよいという理解でよいですか。先ほど同様の質問を行った者と同一人物です。お忙しいなか申し訳ありませんがよろしくお願いいたします。

ああ、本当ですね。すみません。勘違いでした。はい、それで大丈夫です。

View more

HADでベイズ推定ができるようになりませんか。できれば階層事前分布を設定できるようになると落涙します。HAD神、よろしくお願いします!!

HADはExcelのVBAで書かれていますが、それでMCMCをやろうと思ったらものすごい計算時間がかかります。あとStanがある以上、僕にとってはそれをやる費用対効果が低すぎるのでたぶんやらないと思います。
あるとすれば、HADの分析をStanでできるよう、HADからStanコードを出力する機能をつけることぐらいでしょうか。Stanがもう少し認知されて使われるようになったら、そういう機能をつけることはあるかもしれません。

View more

http://norimune.net/2885の「さらなる一般化に向けて」のモデルでWAICを使ったモデル比較を行いたいのですが、generated quantitiesでどうコードを書けばよいですか??いくつか試したのですが、うまくいきません。よろしくご教示お願いいたします。

最後のバージョンでは、十分統計量を使ってるので、このままではWAICを計算することができません。ただ、推定は十分統計量で計算sにて、WAICに必要な個人ごとの対数確率はローデータから計算することで対応は可能です。
ブログのStanコードを改良して、ローデータもdataブロックから入力するようにします。ひとつ前のコードと同様、

vector[P] x[N];

としておきます。

次にgenerated quantitiesブロックに次を書きます。

generated quantities{
real log_lik[N];
for(n in 1:N){
log_lik[n] = multi_normal_lpdf(x[n] | Mu, Sig);
}
}

とすれば、あとはlog_likをlooパッケージのwaic()に入れれば計算できます。
上のコードはStanでチェックしてないので、エラーが出たら適宜直してください。

View more

HADを使いたい一心でソルバーオフ版(15_200および15_106)をはやる気持ちを抑えつつ、ダウンロードしました。エクセルファイルを開くと、Compile error in hidden module: Systemと表示され動きませんでした。どちらも何度か開き直しましたが変化がありません。当方のシステム環境はOS X YosemiteでExcel 2011 for macの英語版です。ぜひHADを活用したいのですが何か心当たりや手立てはないものでしょうか。よろしくご教示お願いいたします。

すみません、今のところ英語版に対応していませんので、日本語版でお使いください。英語版への対応も現在検討中です。

View more

http://www.slideshare.net/simizu706/glmm の20ページからの例3のような個人と項目の両方に二重にネストされたデータ(cross classified data)に対して、マルチレベル相関係数を求めることはできないのでしょうか?もしそれができないのであれば、個人ごと、もしくは項目ごとに求めた複数の相関係数をメタ分析のようにFisher z'変換/逆変換などで集約する手法を思いついたのですが、そのような方法は妥当でしょうか、ただしそれだと個人と項目それぞれの変量効果をうまく扱えていない気はするのですが…。階層水玉本を愛読しております。よろしくお願い致します。

できます。Mplusでもできますし、ほかのソフトでもできるかもしれません。Stanで推定することもできると思います(ただし時間はかかる)。
ご提案の方法でもできるかもですが、一度推定した値をさらに使うのは効率が良くないですね。パラメータの誤差をモデルに含めることができなくなるので。

View more

http://norimune.net/2918 は変分ベイズで解くためにRhatが得られないということですが、その場合に収束判断はどう考えたらよいでしょうか。先ほど同様の質問を行った者です。ご教授ありがとうございます。お忙しいところ恐縮ですがご回答頂けると助かります。

設定した基準値でELBOが変化しなくなれば収束したと表示されます。

View more

http://norimune.net/2918を参考にRstanで多次元IRTやるとRhatが出力されませんでした。どうしたらRhatを見ることができますか?お忙しいところ恐縮ですがご回答頂けると助かります。

このコードは変分ベイズで解くものなのでRhatはでません。

View more

http://norimune.net/2918 でWAICを出力するにはgenerated quantitiesでどうコードを書けばよろしいでしょうか。例示していただけるでしょうか。お忙しいところ恐縮ですがご回答いただけると幸いです。

次のように書きます。あとはlog_likをlooパッケージのwaic()にいれてください。
real log_lik[N]:
for(n in 1:N){
log_lik[n] = 0;
for(p in 1:P){
if(y[n,p]!=999){
log_lik[n] = log_lik[n]+ordered_logistic_lpmf(y[n,p] |1.7*mu[n][p],1.7*beta[p]);
}
}
}

View more

お忙しいところ失礼いたします。HADで階層的重回帰分析を行い,交互作用を検討しました。その結果step1, step2でR2の有意な増加が見られました。しかし、step2のシートの「適合指標」に出力されているp値が.10を大きく超える値でした。また,他の分析では, R2の増加量は有意と出力されたのですが,HRAのシートの「モデル比較」に出力されるp値が.10を超え,step1の適合指標のp値が.10より大きくなりました。これらは何を意味しているのでしょうか。また,結果の報告をする際には「モデル適合」を参照すればよいのでしょうか。お忙しいところ恐縮ですがご回答いただけると幸いです。

すみません、さすがにこれだけの情報では何とも言えないです・・もし差し支えなければデータが入ったHADごと送っていただければ確認します。

View more

c[i,j] = eta^2*exp(-(i-j)^2/((K-1)*lambda)^2)+if_else(i==j, sigma, 0)だった場合は、 c[i,j] = eta^2*exp(-(i-j)^2/((K-1)*lambda)^2)+i==j ? sigma:0になるという理解でよろしいでしょうか。何度もすいません。本当に申し訳ありませんが、先生の時間があるときにでもご教授ください。よろしくお願いいたします。

そうです。もしそれがうまくいかなかったら、
c[i,j] = eta^2*exp(-(i-j)^2/((K-1)*lambda)^2);
if(i==j){
c[i,j] = c[i,j] + sigma;
}
としてもいいと思います。

View more

http://www.slideshare.net/simizu706/tokyo-r53 このスライドのif_elseです。スライド24です。マニュアルを参考に書き直そうとしたのですが、先生の資料のコードが応用編だったので理解できずにいます。お忙しいところ大変申し訳ありませんでした。

Stan14のマニュアルの581ページに書いてあります。if_else(x=1,1,0)だった場合、x=1 ? 1 : 0というように書きます。

View more

http://norimune.net/2918 の例題のPromaxはpromaxではありませんか?大文字だとエラーがでます。

psychパッケージかGPArotationパッケージを入れないとダメだったかもしれません。

View more

以下の資料を拝見しました。最新のStanに対応していないようでエラーがでるのですが、どう直したらよいかわかりません。申し訳ありませんが、修正のポイントを教えてください。if_elseのところでエラーがでます。 http://www.slideshare.net/simizu706?utm_campaign=profiletracking&utm_medium=sssite&utm_source=ssslideview

130ページもあるのでどの部分かかわかりませんが、Stanは最新版ではif_elseは非推奨になっています。マニュアルを見てみて下さい。

View more

http://norimune.net/2918 の例題にそって実行すると以下のエラーがでます。どう対応したら良いか教えてくださいませんか。何とぞ、何とぞご教授いただきますよう平にお願いいたします。 Error in new_CppObject_xp(fields$.module, fields$.pointer, ...) : variable does not exist; processing stage=data initialization; variable name=y; base type=int 追加情報: 警告メッセージ: 1: is.na(x) で:

どうも最新のStanだと、int型の配列に直接データフレームを渡すとエラーになるようです。y=datとなっているところを、y=as.matrix(dat)としてみてください。後日ブログも更新します。

View more

HADで、ポリコリック相関係数、ポリシリアル相関係数を用いてデータを分析する際、相関係数が1を超えてしまう事がありました。 この事は自分自身で作ったVBAプログラムでも見られました。Rでは1.0を下回りました。このような事態になってしまう事はVBAの計算上のミスではないかと私は予想していますが、その計算もどこが間違っているかわからない状況です。 お手数ですが、このような結果になってしまう先生のご意見をお聞かせいただけますでしょうか?

先程メールで質問いただいた方と思いますが,一応こちらでも同じ返答を貼っておきます。

ポリコリック相関係数は,場合によっては1を超えることがあります。
ただこれは不適解で,解釈が難しいです。

不適解は計算上のミスというより,最尤法で解く以上,こういう問題は不可避です。
推定の工夫で,1を超えないようにすることもできますが,HADにはそのアルゴリズムを積んでいません。

Rのコードを確認すれば,そういった工夫を知ることができると思います。

View more

Loading…

Ask @simizu706:

About Hiroshi Shimizu:

関西学院大学で教員をしています。社会心理学を研究しています。

Hyogo, Japan

http://norimune.net