Kosugitti's BLOG

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

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

2014 / 1月

試験と採点

普通紙マークシート読み取りソフトを採用し,今期の試験のいくつかはマークシート試験にしている。

いつもは論述させる試験が多いのだが,系列効果が出やすく,何度も読み直してレイティングし,重みづけて・・・というのが大変だと感じていた。人数が少ない授業のそれだと,ダメだダメだとわかってはいても,受験生の名前がわかってしまうこともあるし,前後の回答に引きずられ評価が歪んでないか?と自問自答を繰り返すのである。自分の中では公平にしているつもりだが,ここで悩むのも辛い。

ということで,機械的に採点できるマークシートにしたのだ。
設問は30〜40問ぐらい用意した。多肢選択でもいいのだが,エラーをなくすために○×問題にし,○なら1,×なら2にマークせよ,という形式にしてみた。
本学は学籍番号が10桁あるので,すべてマークさせると無駄だから,受験番号を別途割り振るという作業もいるが,おおむねマークシートを使った試験はうまくいったように感じている。

試験を作り,読み直すときに,同時に自分もマークしてみる。これが模範解答となり,実際の試験の回答とあわせて読み込んで,模範解答指定をしてやると,自動的に採点してくれる機能がソフトについている。試験問題の推敲や読み取りのチェックなどがここでできるので,一石二鳥である。
100人近い受験生でも,入力はScanSnapのおかげですぐにできる。学生の受験番号入力エラー率は2%ほどで,個別の訂正で十分対応できるレベル。
採点は基本的に0/1にし,csvを吐き出してくれるので,Rで読み込んで項目分析をする。

ltmパッケージで1PL,2PL,3PLモデルをやってみる。
大講義ものでも100人ぐらいだから,項目母数としては安定した推定になっているとは思えない。それでも,IT相関が負になるような(=識別力が負になるような)項目はふさわしくなかろう,と除外したり,Ablityの推定なんかをしてみる。ちなみに,Abilityは素点の総和と相関が0.8〜0.98ぐらいあるので,項目を落としてもほぼ実態とかわらない。

サンプルが少ないのでうまく当てはまらないこともあるが,それよりも興味深かったのはpsychパッケージのirt.faをしたときだ。「社会心理学」の試験結果が二因子構造になったのだ。基本的に試験だから一因子のほうが望ましいと思ったが,項目をみてみるとどうも基礎的な知識の正誤因子と,論理的に考えて回答する項目因子に分かれたようだ。しかもそれぞれの因子間相関がほぼ0であったことが興味深い。
この試験は,マークシートに加えて論述問題も一問用意しておいたのだが,そこの採点との相関もそれぞれ0.3以下であった。論述はまた違う能力なのかもしれない。
そこで,IRTでの各因子のAbilityを推定し,論述問題の得点とあわせて重み付き総和で採点した。重みはやや論理的思考の方に大きくつけた。

心理学測定法のほうは,基礎的知識を問う問題がおおかったので,TICが負の方向で高く,高い能力についての弁別力のない試験であることが明らかになった。これはまあ,テストとしてはどうかというところもあるが,そこを狙いにして作ったのだからある意味狙い通りである。

来年は,このデータをもとに良問による試験問題プールを増やしていきたいなあと思う次第である。

ちなみに,IRTは100人ぐらいの試験だと項目母数があまり安定しないが,MCMCpackパッケージのMCMCirt1dをつかって推定すると,まぁまぁ収束して,それっぽい値がでた。MCMCってすげえな,とも思った。

試験のたびに統計のお勉強にもなっている。

[amazonjs asin=”B00FYN95ZO” locale=”JP” title=”マークシート読取君3″]



RとTeXのいい関係

最近のマイブームはTeXです。たぶん[改訂第6版] LaTeX2ε美文書作成入門がでて,Texlive2013ベースで導入するようになり,導入の敷居が低くなった=プラットフォーム化がすすんだことが原因の一つなんだろうと思う。これでうちみたいな文系心理の学生にも紹介しやすくなったし。

ところで,昨日必要に迫られて(理由はこちら)psychパッケージのヘルプを読んでいたら,ずいぶんと便利な関数があることを知った。psychパッケージの結果をTeX出力してくれる関数群だ。結果の美しさに感動したので,ついでにRとTeXのつなぎ方について,わかったことを書いておく。ここで紹介するのは,

  1. RstudioのSweave機能
  2. xtablesパッケージ
  3. psychパッケージのいくつかの関数

です。

1.RstudioでSweaveする

これはRStudioで新規Sweaveファイルを開くだけの簡単な方法。documentclassから始まり,\end{document}で終るファイルが開かれる。Rの式や関数を<<>>==から@の中に記載し,Compile PDFボタンを押すだけ。Rに入力したコードも表示させたかったら,echo=TRUEのオプションを着けておく。プロット等の図版が欲しい場合は同様に,fig=TRUEのオプションも書いておく。

結果はこちらにあるとおり。図のファイルは自動的にPDFファイルを作ってくれたりするから大変便利。

ただし,日本語入力等には対応していないし,時々うまく行かないこともあるから,自分でソースを見て修正をかけたほうが良いかも。その場合は,コンソールで

とし,texファイルを出力させる。直すべきところとして,

  • スタイルファイル,Sweaveとaeをとってくる必要がある。こちらのサイトを参照。
  • documentclassを{jsarticle}に。なんなら[uplatex]で。
  • usepackage{graphicx}を追加。
  • PDFをincludegraphicsするときにはBounding Boxが必要。

このへんで対応できるかなと。

ところで,コンパイルはuplatexで,というのがこれからのスタンダードのようだし,いろいろエラーがでたり書き直すのも面倒,ということもあるでしょう。自分のTeX書式テンプレートを用意しておいて,そこにRの結果等を書き込みたいな,と言う場合には次の2.や3.の方法を使いましょう。

2.xtableパッケージのxtable関数

これはもうそのまま,次のコードを走らせればすぐにわかる。

プロンプトにTeXのコードがでてきたと思うので,それを自分のTeXテンプレートに書けばOKなわけだ。xable関数は色々な書式に対応したテーブルを書き出してくれる。

3.psychパッケージの様々な関数

これが本題。psychパッケージの中に入っているいくつかの関数で,自動的に表を出力してくれるのがありがたい。関数はそれぞれ次の通り。

  • df2latex…データフレームをTeXにしてくれる
  • cor2latex…相関行列をTeXにしてくれる
  • fa2latex…因子分析の結果をTeXにしてくれる
  • omega2latex…信頼性係数ωの情報をTeXにしてくれる
  • irt2latex…項目反応理論の結果をTeXにしてくれる
  • ICC2latex…ICCの情報をTeXにしてくれる

ソースコードは次のような感じ。上のxtableパッケージの結果と合わせてコンパイルしたtexソースPDFも資料として上げておきます。

ちなみにTeXとは関係ないけど,psychパッケージは因子分析の図を書いてくれるfa.diagram関数や,fa.plot関数ってのもあるから面白いねえ。アップデートもしっかりあるし,今後も展開に期待したいパッケージの一つです。

追記 Texlive2013にはXeLaTeXというUTF-8対応のtexがあるので,これを使えばRstudioのSweaveからも日本語でコンパイルできるよ,との情報をいただきました。ありがとうございました。



psychパッケージ1.4.1のエラー

psychパッケージのバグ発見。

fa.parallel.poly関数は,そのまま使うとエラーを出す。これはglobalオプションが指定されてないことによる問題で,global=TRUE/FALSEを一回書いてやれば直る。ヘルプもglobal=global,となっているから作者のミスだろうな,と思って連絡したら「確かにミスってるね,次のバージョンで直すよ」というお返事をいただいた。

最後の行は,このように直すとよい。

次のバージョン,psych 1.4.2は2月の3週目ごろにリリースされるとのこと。だからこの情報もその時まで有効。

追記;2014-02-01に1.4.2になって,バグ修正されてました。1.4.3がもう出るとのこと。



短髪問題

長男を散髪に連れて行った。
今までマッシュルームカットだったが、今回は耳が出るような短さに、とお願いしてみた。

随分と男の子らしくなった。

写真

散髪に行ったのが土曜日。
翌日、何度か「髪伸びてない?髪おんなじ?」と聞いてくる。そんなに早く伸びるわけないのだが、新しい髪型を幼稚園の先生やお友達に見せたいので、伸びられては困るようだ。



お誕生日ありがとう

昨日はお誕生日でした。

センター試験の前日ということで,授業が全休になったこともあって,学生とともに下関に開店した天下一品へ。

お昼を楽しんだあと,大学に戻って少し仕事したあと,今度は早めの帰宅。

妻が食事会ということで,湯田の「まほら」を予約しておいてくれたのでした。子ども連れということもあって,17時半というお店があいてすぐの時間でしたが,個室だったし,日本酒に魚,さらに足湯も楽しめるお店で,楽しみました。

イベントいっぱいで,近年まれに見るハッピーな誕生日でした。おつきあいいただいた皆様,ありがとうございました。



バックアップしたぜ

はてなブログがなかなかエクスポート機能を着けてくれないので,このサイトのソフトを拝借してバックアップとりました。

アーカイブが大量になったので,Compact Archiveというプラグインで整理。

少しずつですが,サイトの気がかりが減っていってます。

 



電子書籍出版にたどり着きました

ということで,とりあえずできた。

こちらをご覧下さい。Google Play Booksにて,本が並びました。。。

こちらの記事に書いたように,エントリーはしてあったんだけど,ePubの形式が不備とかで一旦却下されて。

ePubチェッカーでチェックしてみると,確かに色々エラーが。主に目次を作っているtocファイル(toc.ncx)の中に,同じ項目が複数ネストされて入ってたことによるエラー。目次のIDは一つしか駄目よ,と怒られているので,それをHTMLエディタ(Sigilの)でチマチマ訂正。エラーがつぶれたので再アップ(を共著者にお願い)すると,今度は価格設定が悪いとかでしかられたそうな。

こっちの記事にあったのと同じ症状で,国コードをJPに直すと,十数時間で!確かに!アップされてました!

やあ長い道のりでしたわい。無料に設定してあるので,早速DLを試してみようと思ったんだけど,クレジットカードの情報を入力しろという。無料なのに?ええー,っとも思ったけど,仕方が無いから教えてやったら,確かに0円で購入?できました。

ちょこちょこ引っかかるところはあるけど,やり方がわかったからまあいいかな。

自分のサイトにおくのが結局一番簡単なんだねえ・・・。



電子書籍出版への遠い道のり

ということで,ePubにできましたよ,っと。Sigilで微調整をして,表紙の絵を探してきて着けたりして,それっぽい体になりました。

後はそれを公開するんだけど,共著者との共通見解で「お金儲けにしたくないよね」というのがあって。

統計環境Rのチュートリアルセミナーでつかったテキストなので,みんながRを使ってくれるきっかけになってくれたら嬉しいし,何よりLaTeXやSphinx(やReVIEW)でいろいろやるのが楽しかった。なんならePubにして電子出版してみたい,というところまで楽しみの一環で,その経験が報酬として得られたらそれ以上は別にいいや,という感じ。著者が複数いるので,取り分で喧嘩になったりするのも嫌だし。

ということで,フリーソフトウェア精神でやろうと思ったわけです。クリエイティブ・コモンズのCC-BY-SA(表示と継承はお願いね)ライセンスでやろうということになって。でももちろん,できれば多くの人に使ってほしいわけだから,みんなの手の届きやすいところにおいておきたい,ということで置く場所をいろいろ探したわけです。

有名どころはAmazon(Kindle),そしてPaboo。まずPabooで,と思っていたんだけど,なんとここは自作のePubをアップロードするためには有料会員にならないと行けない。しかも月額525円って,ちょっとうっとおしい金額。なんか違うな,と思って今度はKindle Direct Publishingをみた。ところが今度は,アカウント登録の際に銀行口座を明記する等の手続きが必要。しかもアメリカの方で印税が発生するため,Amazonが源泉徴収をしちゃうんだけど,それを回避するためにはアメリカの税当局に申請して固有ナンバーを付与してもらう手続きが要るっていう。他にも,形式はePubでアップロードできるけど,mobiというKindle専用形式に変換されちゃうということがあって,面倒だなあという印象。しかも一番の問題は,最低でも99円という値段を付けなくちゃ行けない。つまり,お金儲けしないといかんのです。

PabooやAmazonの言い分もわかります。無料で出版してやるんだから,どこかでマネタイズするために,会員経費としてとるか,出版手数料としてとる(=そのため定価0円は困る),ということでしょうね。そもそも儲けたくない人なんていないでしょう?ってことでしょう。

正直,資本主義怖いなー,と思った。資本主義から逃げられないようになってる。俺はお金儲けがしたいんじゃなくて,ただ楽しみたい&楽しませたいだけなのに。お金が関わらない楽しみ方ができないように,システムが迫ってくるのです(´Д` )

とりあえず,無料で出版&無料で公開してくれるところを探さないといけない。ひとまずこのサイトには上げておいて(ただしWordpressはepub形式を異端と見なすので,このサイトを参考に設定ファイルの書き換えが必要でした。),あとはGoogle Play Booksが無料でアップ・ダウンさせてくれそう(DRMフリーで)なので登録申請中。他にも探してみるつもりだけど,ちょっと望み薄かなあ。

いやいや,なかなか道のりは遠いものです…。

 

追伸 ちなみに,あたかも俺が奮闘しているように書いてしまいましたが,実際手を動かしたり色々調べたりしてくれてるのは,同僚の押江先生です。お世話になってます。



【まとめ】電子書籍に関するこれまでの奮闘

iBooksAuthorが出たときに,これだ!と思ったのよ。

書籍を,電子媒体として出すことができる,しかも個人レベルで出すことができるとなると,大分気が楽じゃないかと。

一つはボリューム。別に薄いペラッペラの本を出してもいいわけで,「出すからにはちゃんとせにゃあ」という気合いが少し減る。これは「後に残るものだからちゃんとしないといけない(孔明様も「やはり書物に嘘は書いてないものじゃ」って言ってた)というプレッシャーからの開放にもつながる。もちろんちゃんとしたものを出さないと行けないんだけど,技術が進歩することもあれば,誤字脱字は出版した後も見つかるものでね。そういう意味で,電子書籍にしたらアップデートしやすかったりするからいいよなあ,というのがある。

もちろん,ちゃんとした出版社でちゃんと出すことのメリットがあって,最大の利点は編集がちゃんと入るってこと。言葉のチェックだけじゃなくて,レイアウトの美しさまで考えた校正をしてもらえる。しかも,宣伝してくれるし,本屋さんに自分の本が並んでいると嬉しいっていうのもある。もちろん,印税ももらえるわけです。

逆に,売れない本は出してくれないし,印税で儲けることがねらいじゃないから,もうちょっと気楽な・・・という情報公開がしたいこともあるよね。

 

で,iBooksAuthorが出たときに,これだ!と思ったのよ。

実際,統計の授業で使っている自分のノートを清書して,Rの使い方なんかも交えて買いて,ePubにして学生に配布してやろうと思っていたんだけど,さてこれがなかなか筆が進まない。というのも,元はTeXで書いていた原稿があるていどあるので,それをiBooksAuthorがそのまま読み込んでくれりゃあ問題ないんだけど,そういう機能はまだついてない。で,コマンドを消したり加筆修正したりして書いていたんだけど,やっぱりアプリとしての使い勝手は合う合わないがあるわけで。

iBooksAuthorは悪くはないんですよ。WYSIWYGがいい人にとっては,便利難じゃないかなあ。でも個人的には,それよりも数式の美しさ,図表の美しさ,レイアウトの美しさが欲しいのです(Macなのでフォントの美しさ等は問題ない)。

で,やっぱりTeXか,LaTeX -> HTMLやLaTeX->ePubの変換かなあ,とか考えていたけど,そこから意外な方向に路が分岐していったわけです。

まずPandocというのに出会った。これはいろんな書式のデータを相互に変換してくれるアプリで,LaTeXからePubも作れたりする。でも,日本語LaTeXの時にはスムーズに行かなくて,現在進行形で対応中のよう。

次に,構造化されたテキストから様々な形式にファイルを吐き出す,SphinxとReVIEWというのに出会った。

最初に好きになったのはSphinx。インストールが比較的容易で,quick-startを使うとコンパイルに必要な基本設定ファイルを自動生成してくれ,あとはmakeコマンドでhtmlやTeX,ePub形式に出力してくれる。元のソースはreStructured Textという書式で書くんだけど,これはまあ慣れてしまえばそれほど面倒でもない。

次にReVIEW。これもインストールは比較的容易。yamlという基本設定の書式ファイルは自動生成じゃなく,サンプルをみて(ダウンロードして)自分なりにカスタマイズしていく必要があるけど,それができればSphinx同様,html,TeX,ePub形式に出力可能。元のソースはReVIEWフォーマットに従って書くんだけど,書式自体はreStructured Textよりこっちの方が慣れるのは早かった。出来上がった出力結果,LaTeX経由のPDF を比較すると,どちらかというとReVIEWがつくるファイルのほうが美しいと感じたし。開発者が日本人なので,日本語の対応もスムーズにいってると思います。

で,スイスイ書いていたんだけど,ReVIEWには一つ問題が。数式がうまく出ないんですよ。@<m>というコマンドはあるんだけど,ePubやhtmlでは奇麗に出ない。LaTeX書式で出すとちゃんと出るんだけど,今回はePubが欲しかったわけで,これには困った。ReVIEWが今後更新されていったらもう少し対応してくれるのかしら。それに期待するしかないけど,現状は無理。

で,Sphinxはその点,比較的対応が上手。デフォルトでmathjaxという仕組みを使っているみたいで,htmlレベルではこれで奇麗に出る。ePubにする場合は全然だめだったんだけど,mathjaxのエクテンションを外せば,dvipngを使って数式を図として取り込む。これを使えば,いいePubができました。

できあがった書籍については近日公開予定です。ちょっとまってね。

 

ということで,結論から言えば,数式の入ったePubが欲しければSphinx,数式がなく文章主体のePubならReVIEW,数式が入ったPDFでいいなら当然LaTeXというところでしょうか。Sphinxはコンパイルのときに所々失敗するところがあって(例えばコードブロックなのにハイライトできてない箇所があったりする),最終的にはSigilなんかで整えていかないと駄目っぽいけど。

ReVIEWもSpinxもまだまだ開発途上で,これからもっと良くなっていくだろうし,なっていってほしい。優劣つけがたいけど,自分の中でePubにするルールというか,一つのテキストから複数の書式を作るという今風のドキュメント作成が理解できたのはよかったなあ。

なにより,構造化された文章を,プレーンなテキストで,マークアップして書いていくのって軽くていいね,なんだか書くのが楽しいな,という気になりますね。研究者も結局は文筆業だからね。

 

ちなみに,Mac/Linuxユーザだから,コマンドラインでSphinxやReVIEWを導入しやすかったというのがあると思う。SphinxはPython,ReVIEWはrubyで動かすから,コマンドライン必須になる。Windowsの場合はCygwin経由でやるのかな?ようわからん。もうみんなMac使えばいいじゃない。



講義「データ処理法」のメッセージ

講義「データ処理法」での講義まとめとして,Moodleに寄稿。備忘録として転記する。

———————————————————————————-

データ処理に対する態度・考え方について

  • データ処理は技術にすぎない。技術は修得すれば誰にでもできるようになる。技術で超えられない問題の方が遥かに難しいのであるから,技術にとらわれることなく自由な発想・思考ができるようになるために修練すべきである。
    • 技術的にも未熟,能力的にも未熟という状況が最低である。
    • 技術的には習熟しているが,能力的に未熟という状況があり得る。
    • 技術的に未熟でも,能力(や情熱?)があるという状況は,やりたいことができない不自由な状態である。あるいは,正しくできないため間違った答えに導かれてしまう。
    • 技術的にも能力的にも優れているのが理想の状況である。
技術的な問題に落とし込むために
  • 自分が知りたいことが明確になった場合,それがどのように測定されるか,分析されるかをイメージ=計画できなければならない。
  • データ処理の観点から言えば,計画の初期段階で概念図(=パス図)を描けるようにならなければならない。
    • 自分の仮説はどの概念とどの概念のどういう関係(因果・相関)か。
    • 概念を測定するためにどのような項目を用意するか(測定方程式=因子分析)。
    • パス図に埋め込まれた暗黙の仮定はなにか。
  • データが目の前にある場合(データを取った後),そこからできるだけたくさんの情報を引き出すことを考える。そのためにも分析技術から自由になるべきである。
    • 取ったデータが悪い,は言い訳にすらならない。
    • データの基本的な属性・特性に応じて分析方法を変えることを考えるべきである(記述統計,可視化による性質の確認)
    • 想定していた測定概念がきちんと測定できたかどうかを検証しなければならない(適合度指標)
    • 回答者が一様に等質なのかどうか,セグメント毎に分析方法を変える必要はないか,も検討することができる(クラスター分析,多母集団同時分析)
本講義の限界点について
  • 非線形データマイニングに言及できなかったこと
    • 階層ニューラルネットモデル,SOM,SVM,決定木など,非線形関係を明らかにする分析モデルも存在する
    • テキストマイニング=形態素解析+数量化三類,も応用可能性は高い



top