Tsutomu Okada さんのコメントを転送します: AmosBasic(Amos5)で,欠損値のあるデータを処理しようとすると結構大変ですね。 「平均値と切片を推定」 sem.ModelMeansAndIntercepts を指定するだけでは, 「少なくとも一つのグループのデータに対して飽和モデルは適合しませんでした。」エラーになってしまい 尤度比chi2乗統計量やその他の適合度測度は出力されません。 英語版マニュアル(Amos4.0 User's Guide)P339を見つつ,サンプルファイル Ex17-all.amosbasicを参考に 書き加えることで,ようやくカイ二乗値が求まりました。 RMSEAやPCLOSEは本来できあいのmethod(.RMSEA,.PCLOSE)が用意されているのですが, この場合は,AmosEngineブロックの外で手計算でchi二乗を求めるため,これらのメソッドは使えないようです。 (エラーになってしまいます)。 AMOSBasicは基本的にVisualBasicコンパチですから,chi二乗まであれば,とりあえずRMSEAは簡単に求まりますが 困ったのはPCLOSEです。 せっかく用意されている内部ルーチンを使えればよいのですが,方法がないようです。 ChiSquareProbabilityメソッドを応用すれば何とかなるのでしょうか?(そうなるともう手に負えない範囲です)。 マニュアルに書いてある式をプログラミングするのはとても無理そうですし。 ※サポートにも尋ねたのですが,この件はサポート対象外だと言われてしまいました。 それはそれで別にいいのですが,それなら,せめてきちんとしたマニュアルを用意した上で言って欲しい,という不満は残りますね。 そのうえ最近は,別途保守料金を請求するシステムに変わりましたし, 貧乏国立大学で買えるソフトではなくなってきたのかもしれません。 岡田努 ---------------------------------------- Ex17-all sub main dim rm as double,num as integer '変数の定義 :::: Dim Sem As New AmosEngine With Sem :::: Num=.DataFileNCases 'サンプル数 end with ::::: 最後の部分 If (ModelConverged And ModelAdmissible And _ SaturatedConverged And SaturatedAdmissible) Then ChiSquare = ModelCmin - SaturatedCmin Df = SaturatedNparms - ModelNparms Dim FitTest As New AmosEngine P = FitTest.ChiSquareProbability(ChiSquare, CDbl(Df) ) FitTest.Shutdown 'Suppresses benign error message '**************** RMSEAの計算 RM= (ChiSquare-Df)/((Num-1)*Df) If RM<0 Then RM=0 RM=Sqr(RM) '**************** Debug.Print "Fit of factor model:" Debug.Print "Chi Square = "; Format$(ChiSquare,"#,##0.000") Debug.Print "DF = "; Df Debug.Print "P = "; Format$(P,"0.000")' Debug.Print "RMSEA = Format$(RM,"0.000") 'RNSEA表示 else Debug.Print"Sorry, one or both models did not converge to an admissible solution." End If end sub ---------------------------------------------------
ここは心理学研究の基礎メーリングリストに投稿された過去の記事を掲載しているページです。