No.12576 Mixedモデルでの扱い方  【ごろ】 2010/05/07(Fri) 05:17

データ:営業担当社員の入社時のTOEFLスコア(基本的には1回のみですが,テストした日付は入社後1ヶ月以内から3ヶ月以内です。)社員別の入社後の月毎の外国人顧客からの受注額。
その他データ:社員別の毎月毎の英語研修時間,海外出張・旅行日数
解析したいこと:linear mixed modelを用いて受注額を入社時のTOEFLスコアで予測するモデルを作成する。

wide形式からlong形式にデータを変換するときに,TOEFLスコアも入社何ヶ月目に何点だったかというデータ形式にしました。つまりlong形式シートに営業社員ひとりに付き一つのTOEFLスコア。

この状態で統計ソフトを走らせると,どうも,TOEFLを受けた月の受注額しか見ていないようで,多数のデータをomitしているようです。

これを避けるためには,long形式にしたときに,同一営業担当社員の全ての行にTOEFLのスコアが入るようにすれば良いのは分かったのですが,せっかくの時系列データなのに不自然な感じがします。

長文で分かりにくいと思いますが何かヒントを頂ければと思います。
宜しくお願い致します。
longとwide形式の補足
wide形式例
社員ID TOEFLスコア TOEFL受験月 受注額1月目 受注額2月目 受注額3月目
0001 500 1 10 15 20
0002 600 3 0 10 -

long形式例1
社員ID 入社後月数 TOEFLスコア  受注額
0001 1 500 10
0001 2 15
0001 3 20
・・・
0002 1 0
0002 2 10
0002 3 600 -

long形式例2
社員ID 入社後月数 TOEFLスコア TOEFL受験月 受注額
0001 1 500 1 10
0001 2 500 1 15
0001 3 500 1 20
・・・
0002 1 600 3 0
0002 2 600 3 10
当然,ソフトによって使うデータ形式も違うとおもうのですが,私が使うのはStataとRです。

No.12579 Re: Mixedモデルでの扱い方  【MaskedStat】 2010/05/07(Fri) 09:25

ごろさん
SASでしか混合効果モデルを扱ったことはないのですが,long形式例1ではTOEFLスコア が入力されていない行を統計ソフトが認識しないのではと思います。というのは,説明変数は線形混合効果モデルでも通常の線形モデルと同様に計画行列という ものの中に格納されて計算に用いられますが,その行列は行数が観察値の数,列数がパラメータ数であり,共変量の欠測を扱えないのではないかと思います。そ のため,全行にTOEFLスコアが必要でしょう。欠測を自動処理はしないと思います。なぜならTOEFLを2度,3度受験してスコアが変わった場合にも対 応できるような仕様が望まれるからです。これは多くのソフトで共通なのではと思います。

よって,ベースライン値を共変量にするときには long形式例2のようになるということも,違和感はありません。データの特徴として月数が経つほど受注額が上昇していくが,その切片もしくは傾きが入社 時TOEFLスコアによって異なるというモデルであればこのフォーマットで解析できると思います。

No.12580 Re: Mixedモデルでの扱い方  【波音】 2010/05/07(Fri) 10:04

> せっかくの時系列データなのに不自然な感じがします。

たしかに感覚的(視覚的)にはwide形式のように列方向へ時点のラベルを置いたほうが時系列データっぽい印象を受けますが,少なくともRで解析を行う際にはlong形式が正しいです(たとえ時系列っぽい印象をうけなくとも)。

例えばnlmeパッケージのlme()という関数を使うなら:

# いわゆるランダム切片モデルとして解析する場合
result <- lme(受注額 ~ 社員ID + 入社月数, random=~1|社員ID)

# いわゆるランダム切片・傾きモデルとして解析する場合
result <- lme(受注額 ~ 社員ID + 入社月数, random=~入社月数|社員ID)

といったモデルを指定すれば解析できます。

No.12584 Re: Mixedモデルでの扱い方  【青木繁伸】 2010/05/07(Fri) 10:55

> せっかくの時系列データなのに不自然な感じがします

wide 形式でも long 形式でも,データの持っている情報は同じです。当該のプログラムがどのようにデータを読むかだけの話で,wide 形式のデータを読むようにも,long 形式のデータを読むようにも書けます(プログラムを書くときのことを想像すればわかるでしょう)。データは,個人×時点×項目の3次元データなので,それ をデータファイルとして2次元で表示しようとしているわけで,どれか2つの次元をまとめないといけないわけで,どちらをまとめるかで long と wide の 2 形式があるわけです(さすがに 1 次元で表すのは芸がない)。

私なんかは,long 形式の法が分かりやすいと思います。提示されたデータは毎回変わるのは受注額だけですが,もし受注額の他に受注件数とかその他諸々のデータを組み込もうと したり,データ発生時点数が数百にもなったりすると,long 形式でないとデータの見通しも悪くなるでしょう。

No.12592 Re: Mixedモデルでの扱い方  【ごろ】 2010/05/08(Sat) 03:58

MaskedStatさん,波音さん,青木先生
早速の回答ありがとうございます。
まだ,混合モデルについてわからないことも多いのですが,皆様のアドバイスはとても参考になりました。
ワンポイントでの測定データは,切片になり,繰り返し測定するデータは,傾きになるというところが大切なんだろうなと思いました。

データ形式の違いによる計算速度についてのスレッドも読みましたが,奥が深くて面白いと思いました。
これからもこちらで勉強させて頂きたいと思います。

● 「統計学関連なんでもあり」の過去ログ--- 043 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る