No.20447 Re: semで計算するとエラーになる 【青木繁伸】 2013/11/10(Sun) 16:27
エラーの原因は hessian 行列が計算できないということですね。
print(ans2) と AMOS の結果はほとんど同じ結果になっていますか?
大きく違うようでしたら,
ans2 <- sem(model2,cc,586, optimizer=optimizerOptim)
として得られる ans2 とはどうですか?
optimizer=optimizerOptim の他にも選択肢はありますが。
このときにはエラーメッセージは出ず,summary(ans2)も表示されます。
No.20449 Re: semで計算するとエラーになる 【コロン】 2013/11/10(Sun) 17:33
青木先生
お返事ありがとうございます。このデータは,田部井明美『共分散構造分析によるアンケート処理』東京図書のデータです。
Amosで計算した結果ですが,以下の通りとなっております。
χ2=3.102
df=1
p=0.078
R の出力を見ますと,χ2がおかしいようです。
Model Chisquare = -80845535 Df = 1
またAmosでは誤差分散はすべて正ですが,Rでは負の値が3つ見られます。
ans2 <- sem(model2,cc,586, optimizer=optimizerOptim)で結果を返しますと,誤差分散などは少し異なりますが,パス係数は,Amosでは0.63(上記図書 ももちろんこの値), Rでは0.65とかなり近くなります。またこれをもとにして pathDiagram も描くことができました。正しいモデルでないことは間違いありません。
今後もし類似したエラーが発生した場合は,optimizer=optimizerOptim などといったものを付けて進めていくいがいないのでしょうか?それで行っても値が異なるのが気になります。
よろしくお願いいたします。
No.20450 Re: semで計算するとエラーになる 【青木繁伸】 2013/11/10(Sun) 18:07
最適化アルゴリズムによりどのような解が求まるか(あるいは,求まらないか)が違ってくるということでしょう。
デフォルトでは hessian 行列の要素が Inf になっているようで,カイ二乗値がおかしな値であるのも,原因は同じでしょう。
なお,アルゴリズム(ソフトウェア)によって解が違う場合,どれがもっともらしい解なのか(どれが基準になるのか)は面倒な検証手続きが必要なのかもしれませんね。
No.20451 Re: semで計算するとエラーになる 【コロン】 2013/11/10(Sun) 18:31
青木先生
ということは,これはどうしようもない問題ということなんですよね。
幸い,Amosを持っていますので,Rでこの種の分析を行う場合は,Amosでも念のために行うことにしたいと思います。
ありがとうございました。
● 「統計学関連なんでもあり」の過去ログ--- 046 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る