[fpr 2424] SEM使用経験:sem改造?

Mitsuo Igarashi

丸山さん はじめまして。

五十嵐です。私は R も 共分散構造解析 も勉強を志している初心
者です。

mmtaxi (at) nyc.odn.ne.jp (MARUYAMA Takurou) 
wrote:

> わたくしは丸山と申します。地方都市でサラリーマンをしています。
> 心理統計に関してはまったくの初心者ですが、個人的な興味でfprに参加しております。
> 
> そして今回、R言語というものをはじめて知り、フリーの統計ソフトウェアというこ
> とに大変魅力を感じて
> 早速インストールしてみました。
> package SEMも勉強のつもりで試してみようとおもい、五十嵐さんのメール[fpr2411]
> にあります
> プログラムをながしてみました。
> 
> ところが、
> sem.mh<-sem(model.mh,syumi4.mh,30)のところでsubscript out of boundsという
> エラーがでてしまいます。単語から、配列かなにかの範囲か桁数エラーだと思いまし
> たが、
この subscript out of bounds の原因はどうもよくわからないです。

私の環境は
WindowXP   R ver. 1.6.1 と古くまだ 1.7.0 にしていません。

> よくわからなかったので、
> そこでhelpなどを調べてみたところ、ヘルプにあるサンプルプログラムと書き方がけ
> っこう
> 異なっていたので、よけいによくわからなくなってしまいました。
> 
> たとえば、
> helpのプログラムでは、
> 
> R.DHP <- R.DHP + t(R.DHP) - diag(diag(R.DHP))
> 
> という計算をおこなっていますが、五十嵐さんの例ではありません。

sem-help の中を探したのですが、この文は見付かりませんでした。

> また、model.mhは、サンプルにある、ram.dhpやram.wh.1にあたるもの(RAMとよばれ
> るものでしょうか)と
> 解釈しておりますが、引き数の数も、形式もちがうようです。
> * 五十嵐さんのプログラム例
> model.mh<-matrix(c(
>          'F1 -> V1', 'a1',NA,
> 
> *helpのDuncan, Haller and Portes peer-influences modelプログラム例
> ram.dhp <- matrix(c(
>                   1,       2,     11,      1,     NA, 
> 
> 
> semという関数も、(共分散行列、RAM、データ数、パラメータ名、変数名)
> を引き数に指定している(英語が弱いので自信がありませんが)のにたいして、五十
> 嵐さんのプログラムは
> sem(モデル、共分散行列、データ数)と指定しており、引き数の順序も数もことなり
> ます。
> これが原因かなと思い、引き数の順序をかえ、引き数もむりやり5つにして、
> sem.mh<-sem(syumi4.mh, model.mh, 30,obs.vars.mh,rownames)などとして実行しま
> したが
> うまくいきません。
sem-help の

sem.default(ram, S, N, param.names = paste("Param", 1:t, sep = ""), 
    var.names = paste("V", 1:m, sep = ""), fixed.x = NULL, debug = FALSE, 
    analytic.gradient = TRUE, warn = FALSE, maxiter = 500, 
    par.size=c('ones', 'startvalues'), refit=TRUE, start.tol=1E-6, ...) 
ここの default を除いて sem(xxxx) と使います。

ram : a simple encoding of the path diagram for the model. 構造
をコンピュタに伝えるところです。 私の例では model.mh<-matrix(c(

S : covariance matrix among observed variables; 
   私の例では  syumi4.mh<-matrix(c(
N : number of observations 

以下の文は、 V1 etc のラベルを他の語に変えるところですが、私の例
ではないもしていなくて、無くても同じです。 sem-help にしたがって
行っただけです。 fpr に出す時 には除くべきでした。
obs.vars.mh <- c('V1','V2','V3','V4','V5','V6')
rownames(syumi4.mh) <- colnames(syumi4.mh) <- obs.vars.mh

以上で、
sem.mh <- sem(model.mh, syumi4.mh, 30)
これで動かします。
 
> それで、ますます混乱してしまいました。
> RのSEMパッケージの情報がほとんどありませんので、
> 挫折しかかっております。
> なにか教えていただけるような点がありましたらよろしくおねがいします。
> Rやsemについて根本的に勘違いをしているようでしたら御指摘ください。
> 
> また、package sem for Rに関するおすすめの情報源など知っている方がありましたら
> あわせて御教授ください。よろしくおねがいいたします。

CRAN に R-help (at) stat.math.ethz.ch という mailing-list があります。
そこで、 sem の作者の Prof.John Fox に教えていただいたものがあり
ます。あまり助けにはならないかもしれませんが、ログがありますので
お読みください。

なお、 sem は平均共分散構造分析は今のところ私にはできません。
以下は Prof.John Fox の発言です。
> My intention in writing the sem package was to provide a basic 
> structural-equation facility for R. I haven't made explicit provision for 
> models with means, but it might be possible to fit such models by using the 
> raw sums-of-squares-and-products matrix among the observed variables 
> (perhaps divided by n) as input.  It might be necessary to make small 
> modifications to degrees of freedom, etc.
どなたか、これを改造していただけるとありがたいのですが。

よろしくお願いいたします。

-------========--------
五十嵐三都男
mitsu5 (at) ruby.famille.ne.jp

スレッド表示 著者別表示 日付順表示 トップページ

ここは心理学研究の基礎メーリングリストに投稿された過去の記事を掲載しているページです。