Kosugitti's BLOG

アンドロイドは正規分布の夢を見るか

この画面は、簡易表示です

2009 / 6月

はじめてのおこづかい

お買い物にでると、ジュースとかおやつを買ってくれとねだられるので、一日一回、100円ぐらいならOKと決めていた。

今日、ふと思い立って、先にお金を渡してみた。
「これは、100円です。これで買えるものがあれば、何を買ってもいいです。おやつでも、ジュースでもいいです。でも、二つ約束があります。1.一日一回しかあげません。なくなったからもっとちょうだい、と言っても、お父さんはあげません。2.100円で買えるものと買えないものとがあります。買いたいものが決まったら、お父さんに、「これで買えますか」と聞いてください。」
と教示。

スーパーにて、早速おかしコーナーに行こう、行こうとうるさい(笑)
一通り買い物をおえたので連れていく。駄菓子を選んで、これがいい、という。59円。買えるよ、買いなさい、と自分でレジで支払いさせ、おつりをもらうという練習。

早速休憩コーナーで食べる。ゼリーのようなものである。
食べ終わって言う。
「喉が乾いた。ジュースちょうだい」

あかんがな、もう無理だ、41円しかないだろう、というが、「いやだ、いやだー!」と泣く。
結局泣かせたまま帰ってきたが・・・。
やはりまだ早かったのだろうか・・・。

泣いている娘に、「泣こうがわめこうが、お金が無いんだよ。お金の問題はね、泣いてもどうにもならないんだよ」と言いながら、その言葉が自分に帰ってきているようで、切なくなりました(笑)

こりずにまた、教育してみよう。



Rによる因子分析法の比較

Rによる因子分析法、いくつかあるので比較してみた。遠く離れた学生に対する補講の意味と、自分に対する備忘録をかねて。

比較した方法は、

  • psychパッケージによる主因子解
  • factanal関数による最尤解
  • MCMCパッケージによるMCMC的(ベイズ的)因子分析法

である。

取りあえず、ソースは以下の通り。これをコピペすると、再現できるはず。
ちなみに、こちらの実行環境はR2.9.0である。

[crayon-5bc702db94195783821171/]

解説。まずはライブラリの読み込み。

[crayon-5bc702db941bb558438373/]

psychパッケージは心理系のデータ解析に必要なものが、MCMCパッケージにはマルコフ連鎖モンテカルロ法による統計に必要なものが、一揃えはいってます。

持っていない人は、次のコードを先に実行して、ライブラリをインストールしておいてね。

[crayon-5bc702db941ca919956767/]

psychパッケージに含まれるサンプルデータを使います。

[crayon-5bc702db941d4889818718/]

続いて因子数を決定する作業。psychパッケージにある、平行分析関数が便利。

[crayon-5bc702db94210125227956/]

これを実行すると、こうなる。
f:id:kosugitti:20090604193015j:image
△の印が因子分析のスクリープロット。これを見て因子数を決めることができる。ちなみに×は主成分解、つまり共通性の推定をしないときのスクリープロット。
点線(二種)が平行分析、要するに同じデータセットの乱数表から作られる相関行列や、データセットの数値を適当にリサンプリングして作られる相関行列のスクリープロットである。乱数やバラバラになったデータセットから得られる固有値の並びに「意味」はなく、当然そのラインより上に来る因子が有意味、と判断される。今回は3因子を仮定しました。

で、本番。

psychパッケージに含まれる主因子解の関数はfactor.pa()。引数として、データ、因子の数、回転方法、因子得点の算出等々が選べる。回転は”none”, “varimax”, “promax” “oblimin”から選択。今回は因子数とプロマックス回転だけ指定して実行。詳しくはヘルプを参照。

[crayon-5bc702db9421c516764064/]

次はデフォルトで入っているfactanal関数。次の箇所がそれ。

[crayon-5bc702db94226983816176/]

factanal、と書いた次の引数だけど、「~.」は与えられたデータセットの中に含まれる変数を全部分析対象にして、という意味。データセットは次の「data=bfi」で指定している。例えばこの中で、変数A1〜A5だけを使いたいのであれば、

[crayon-5bc702db94230409861056/]

のようにする。これはRの定まった書き方ですな。
さて、続きの引数で因子数(今度はfactorsと書く。factor.paではnfactorsでしたが、nが要らないことに注意)や、回転ナシを指定している。なぜ回転しないかというと、回転用の関数promaxを使うからです。なぜわざわざそうするかというと、factanalでpromax回転をしてくれるのだけど、因子間相関が出ないからです。因子間相関を出すための式が次。

[crayon-5bc702db9423b308943014/]

ちなみに、出力が綺麗なfactanal2関数というのが青木先生のサイトからダウンロードできる。このサイトはとても便利です。この関数を借りると、こんな感じになる。

[crayon-5bc702db94245105360006/]

source〜とあるのがネットから関数を取ってきなさいよ、という命令文。ということで、ネット環境があるときにこれを使う。なければソースを丸ごとぺたりと貼ればよい。これの二行目、四行目で上と同じことをしているが、出力が良いのでこちらを好まれる向きもあるかと。

さて、最後、今回の目玉(?)マルコフ連鎖モンテカルロ法(以下MCMC)による因子分析モデルの実行。MCMCの実行については、BRugsやR2WinBugsなど、OpenBugsを援用するのが一つのやり方。もう一つのやり方が、MCMCpackの利用。とても簡単にできます。因子分析はfactanalの前にMCMCがつくだけである。次の箇所がそう。

[crayon-5bc702db94250624187637/]

factanal関数と違うのは、mcmc=50000とburnin=10000という引数。前者はシミュレーション回数で、後者は最初の10000回は数値が落ち着かないのでデータとして見なしませんよ、という意味。バーン・イン期間と呼ばれます。回数は何回でもいいんだけど、数千回はするべき。ちなみに今回、五万回回して前の一万回を捨てる、という設定だが、これで要した時間は約12分でした(環境:Intel Core2 Duo E6550@2.33GHz,2GのRAM,Windows VISTA)。

さて、結果の比較。因子負荷量を表にまとめてみました。

pfa1 pfa2 pfa3 ml1 ml2 ml3 mcmc1 mcmc2 mcmc3
A1 -0.09 0.13 -0.13 0.244 -0.005 -0.017 0.02 0.09 0.01
A2 0.46 0.00 0.09 -0.366 0.304 -0.093 0.08 -0.09 -0.01
A3 0.48 -0.02 0.08 -0.377 0.326 -0.083 0.09 -0.09 -0.01
A4 0.18 -0.16 0.12 -0.299 0.074 0.027 0.00 -0.09 -0.01
A5 0.56 -0.10 0.02 -0.507 0.314 -0.147 0.08 -0.14 -0.02
C1 -0.11 0.04 0.69 -0.197 0.237 0.600 0.03 0.00 0.05
C2 -0.11 0.09 0.64 -0.138 0.229 0.543 0.04 0.02 0.05
C3 0.05 0.03 0.57 -0.266 0.302 0.476 0.06 -0.02 0.04
C4 0.05 0.26 -0.65 0.446 -0.077 -0.507 0.04 0.12 -0.02
C5 0.04 0.31 -0.47 0.404 0.002 -0.384 0.06 0.13 -0.01
E1 -0.70 -0.05 0.18 0.365 -0.427 0.332 -0.14 0.08 0.02
E2 -0.65 0.15 0.12 0.529 -0.332 0.247 -0.09 0.15 0.03
E3 0.69 0.11 0.00 -0.394 0.512 -0.157 0.16 -0.06 0.00
E4 0.71 -0.11 -0.18 -0.507 0.353 -0.339 0.11 -0.14 -0.03
E5 0.52 0.12 0.15 -0.336 0.511 0.032 0.15 -0.03 0.02
N1 0.08 0.79 -0.09 0.647 0.540 -0.016 0.24 0.32 0.06
N2 0.05 0.72 -0.04 0.605 0.506 0.031 0.22 0.31 0.06
N3 0.01 0.71 -0.04 0.553 0.404 0.001 0.18 0.27 0.05
N4 -0.22 0.59 -0.01 0.598 0.161 0.062 0.10 0.25 0.05
N5 -0.14 0.48 0.10 0.431 0.202 0.120 0.10 0.20 0.04
O1 0.31 0.17 0.19 -0.171 0.353 0.088 0.11 0.00 0.02
O2 -0.22 -0.10 0.23 -0.024 -0.147 0.213 -0.07 -0.02 0.01
O3 0.45 0.20 0.15 -0.242 0.431 0.032 0.13 -0.01 0.02
O4 0.07 0.29 0.23 0.065 0.250 0.155 0.08 0.07 0.03
O5 -0.14 -0.04 -0.13 0.124 -0.126 -0.076 -0.03 0.02 -0.01
因子間相関 1.00 -0.18 0.40 1.000 -0.184 -0.079
1.00 -0.07 1.000 0.333
1.00 1.000

ちょっとわかりにくいかなー。
取りあえず見て思うのは、主因子解と最尤解が結構違うと言うこと。あと、MCMCの答えがどちらかというと主因子解に近いということ。実際、各セルの差の二乗をズレと考えて指標化してみると、主因子解と最尤解はセル平均0.324のズレ。主因子解とMCMCは0.206、最尤解とMCMCは0.276のズレとなり、直感を裏付けるわけです。

三つの手法、それぞれ背景の哲学が違うから、どれに真実を見るかは人それぞれ。ユーザー視点の適当な比較ですから、ご参考まで。

ところで、二つほど注意点を。
一つは、MCMC法では回転についてふれなかった。マニュアルを見ても、特に記述がないようなので、おそらく因子間相関の仮定はあると思われる。因子得点を算出させて、その相関を見ればいいのだけど、今回そこまでしませんでした。これで因子得点まで算出させると、マシンパワーが結構いるので要注意、とマニュアルにありました。あるいは、BRugsを使ってきちんとモデル化して、因子間共分散を算出させればいいのだけど・・・色々やってみたけど、うまくモデル化できなかったんじゃよー!(T_T)自分の馬鹿さ加減にあきれます。豊田(2008)*1に因子分析モデルの例があるのだけど、確認的で単純因子構造のモデルで、うまく応用できませんでした。探索的FAのモデルの書き方、調べて教えてください。>W

二つめ。MCMC法のメリットは、母数の分布がわかること。最後の行、

[crayon-5bc702db94260552421327/]

を実行すると、次のような画面が出る。
f:id:kosugitti:20090604193014j:image
今回表の中にのせたのはあくまでも平均であって、母数(ここでは因子負荷量)の平均、分散、パーセンタイルや、図のような分布が見える。因子負荷量と因子得点には正規分布を、独自性にはガンマ分布を事前分布として与えるのだけど、事後分布の形はまぁ・・・すごいもんです。例としては悪いサンプルでしたかね。でもま、現実のデータはもっと誤差まみれなわけで。ともかくこういう、今まではなかった特徴が見られるのがMCMCの売りなのです。

今回、学会発表のデータ分析に当たって、ちょっとMCMCで遊んでみるかと思ってやってみたら、MCMCfactanalというひろいものもあったし、結構勉強になりました。面白かったです。このデータが読者の何かの足しになれば幸いです。

何か間違っているところがあったら、どなたでも遠慮なくご指摘ください。よろしくお願いします。

*1:豊田秀樹(編著)2008 マルコフ連鎖モンテカルロ法,朝倉書店



金魚が死にました

先日の夜店でもらってきた二匹の金魚、一匹が本日死んでいるのがわかりました。
娘は毎朝餌をあげていたし、私も毎日水を換えていたので、持った方かなとは思うのだけど少し悲しい。

「死」の教育になるかと、娘に「来てごらん、一匹死んでいるよ」というと、「一匹になっちゃって、さみしいね。また買ってきたらいいよね」という。
やはり「死んでいる」ことの意味は分からないのかな。あるいは生きている方への配慮かな。まだすこし、痛みが分かってないようだけど。手を合わせて弔う、ということは教えました。その後ケロッとしてたけど。

残念ながら、もう一匹も元気がなくなってきています。近々ゼロになってしまうでしょう。さて、そのときの娘の反応や、いかに。



弱る太陽 活動200年ぶりの低水準

ネットで知ったニュース。
朝日新聞デジタル:どんなコンテンツをお探しですか?
ソースが朝日なので、信憑性は少し低いですが・・・

温暖化よりもむしろ、寒冷化だそうです。プチ氷河期。
これを見ると、反対派は「昨日とかちょっと寒かったもんねー」とか言うかもしれませんが、それは短絡的すぎるでしょう。温暖化派も同様に、「やっぱり今年は暑いわ」とかいう台詞を聞くと、馬鹿馬鹿しい、と思うわけです。機動警察パトレイバーの遊馬が、「そんなに簡単に実感できる温暖化なら、数年後には地球は干上がってしまわぁ」というのですが、その態度に賛成。

気象学者は温暖化といい、地質学者は寒冷化というようですな。
博士も知らないニッポンのウラ 39 地球温暖化CO2犯人説のウソ 丸山茂徳

これを見て思うのは、

  • 地球の気候がどうなるかなんて、はっきり予測できるものではない
  • エコ活動、エコブームは、科学的根拠に乏しいものだけど、恩恵が得られる経済政策です

というところです。

神聖モテモテ王国のトーマスが言います。「地球もこういってるよ。『ガハハ、それぐらいのことでへこたれる俺か?』」



子供は認められたがっている

今日は参観日。数日前から、見にきてね、見にきてねというので行ってきました。

教室につくと、泣きかけの娘の姿が見える。何があったのか、と思ったら、どうやら自分のクレパスをなくしているようだ。お絵描きの授業で、自分のクレパスがないので教室内をトボトボあるいている。結局先生が、別の子のクレパスを借りてきてくれたから落ち着いた。親心としては「担任の先生、もっと早く気づいてあげてよ」と思うが、まぁ暴れ回る四才児をあれだけ抱えていたらムリというものか。

授業の内容は、昨年と比べたら格段に進歩している。ぬりえなのだが、まず1.塗るべき場所が決まっている。さらに2.「ここは何色を塗ろうか」と塗るべき色も決まっている。さらにさらに、3.「雲からお花に雨がテンテンテン・・・」とか、「ジョウロからお花に水がサーッ」と、点線、実線で描画しなければならない。これは高度だ。昨年は確か、色のついたものをもって、白い紙に何かかけたら花丸、というレベルだったと思うが。こんなに一足飛びに進んでええんかな、と思っていたが、案外できるようである。

娘は雨雲を灰色に、チューリップを黄色と赤に、ジョウロをピンク(好きな色でいいといわれた)に塗った。
水色で、雨を降らせたり水をやったりした。
隣にいて、「すげぇな、頑張ってるな、上手だな」と声をかけました。誉めて伸ばすタイプのわし。

十分な成長が認められたので、午後から大学にでましたとさ。

さて、最近、久保田カヨ子さんの久保田メソッドが注目を浴びているようですな。

参考まで↓
久保田カヨ子が面白い – endy111 Log
エチカの鏡★赤ちゃん教育について(5月31日放送) – Yahoo!知恵袋

心理学者である夫の研究を理解して、自分の子供を実験台にして育てたらすごくうまく行ったそうで。今では周囲の人が「うちの子も」と預けにくるそうで。これをしなさい、という七ヶ条がテレビで紹介されてたりするそうで。

まぁ否定する気は無いのですけど、嫌なところが何か所かあるわけです。

第一に、「この方法を使ったら、子供が7ヶ月で歩き始めた(普通は一歳ぐらいから!)」というくだり。早く立てたからどうだというのだろうか(笑)早く話せる、早く大人になれる、というが、果たしてそれが即、その子やその周囲の幸せかというと、そんなことは無いだろうと思うのだ。個人の成長だけが重要なのではない。社会や環境に適応できるかどうかが一番の問題である、と私は考えます。大人のほとんどが、「立てない」「話せない」より、「人間関係がぁ〜」とかって悩んでいるのは、衆知の事実じゃないのか。

第二に、「うちの子も」と子育てを預けにくる人がいるということ。子育てを人任せにする、実の親から育児を放棄される、というのはその子にとって最大の不幸だと思うのだが、どうだろうか。確かに、私は子育てのプロではないし、前頭前野のことも詳しくは無いけれども、お酒を飲んで時々お父さんを辞めるけれども、それでも子らは俺の子らであって、人任せにはしたくないのだ。「お前の子供であるせいで、偉くなれなかった」といわれたら「ごめんなー」としか言いようがないのである。それはもう、諦めてくれ。しょうもないプライドかもしれないが、俺はこの子らの親、という限りには、責任を持ちたいのだ。子育てが苦手だからといって、それを人任せにするのは違うと思うなぁ*1

第三に、「これをしろ七ヶ条」みたいな表現。多分にテレビ局の都合があるのだろうけど、たしかにわかりやすいのだけど、「天才にするにはこれをしなければならない」と「これをしたら天才ができる」というのは別問題。鴨川会長のいうように、「努力したものがすべからく成功するとは限らない。しかし、成功するものは皆、努力している」ということです。七ヶ条さえ守っていればいい、最低七ヶ条は守ろう、というのは実は間違いで、七ヶ条を作るに至ったプロセスというか、その背景、上の例で言えば「夫の研究を(妻自ら学習し)理解して」のくだり、あれが大事なのです。本質をとらえていれば、その表現型として七ヶ条はできるのだけど、ほんとはそれに収まらないぐらいの細かいルールが無数にあって、それは本質を知らないとふとした拍子にでてこないのだ。だからといって、悪影響があるわけでは無いだろうけど、要約された情報(をさらにネットで見るだけのような)「テレビは見せていいのか、なるほど」という理解だけでは何にもならないと思うのだ。

そないがんばらんでも、子供たちはかわいいし、かわいくないこともあるけど、まぁ、6:4で可愛い方が勝つかな、幸せカモな。これぐらいでいい。そういう意味で、うちはいい母、いい子たちです。

これが俺メソッド(笑)

*1:もちろん、人任せ、放棄、というほど丸投げではないんだろうけどね。ちょっと口が悪いのは自覚の上。



ジョナはん

PCがニガテ、という学生にとって、調査票のデザインをもっとかわいくしなさい、というのは酷である。
でもやはり、もう少しデザインに気を遣わねば、回答する方も難しいのである。

ということで、先日学生にデザインを考慮せよ、と言ったところ、週が開けた今日、結構よいものを持ってきた。所々にポンチ絵が入っていて、よくできている。しかし驚いたことに、それらのポンチ絵は、「自分でペイントで描いた」という。携帯電話のアイコンぐらい、ネットで探せばでてくるだろうに…厳しい環境に、自分で適応したようである。

しかし、考え方を変えれば、私はその手の適応はできないのであって、PC上でのアイテムを配置したりするのはいいのだけど、マウスでペイント、というのはできないし、できても絶対この学生のように上手にはできないのだ。

何が正しい適応なのかは分からないものである。

タイトルは、「PCが嫌いです」というので「名前をつけて可愛がってあげなさい」と教えたら、今日つけました、というので聞いたら帰ってきた答え。何やら京都的。




top