統計とか,研究とか,日常についての備忘録的なもの。この広告は、90日以上更新していないブログに表示しています。統計また読んでいても気になる論文があったので,備忘録的にツッコミをメモしておく。http://team1mile.com/sjpr61-1/shimizu.pdf第2章のベイズ統計学の流れの整理区分は後の議論を明確にする上でもわかりやすいように思う。利用できることが示されたことが一因である。とあるが,まず,ベイズ推定の定義が明示されていない。この文章でのベイズ推定の定義は,”パラメタの事後分布を求めること”ということだろう。近いであろう」と推測する方法です.とのことで,事後分布を求めることそれ自体は,ベイズ推定ではないと思います。,”(パラメタ)推定”と”推測”ということばの使い分けが微妙なので,難しい。これまで統計モデルは最尤法による推定が一般的であったが,変量効果を含む一般化線~中略~広くベイズ推定の有用性が理解されるようになった。とあるが,何を解くのか?最適化問題を解くという意味?とても気になるのが,この論文は一貫して”MCMC=ベイズ推定”という認識で議論がなされているようだが,その理解は個人的には正しくないと思う。MCMCはあくまでも,事後分布の確率的な近似方法,より広くは期待値計算の汎用的な方法であり”アルゴリズム”であって”推定方法”ではない。他の力技の積分計算を使っても事後分布を実現することはできる。最尤推定値を得るために,(対数)尤度関数の最大値を求めるために最急降下法という”最適化計算のアルゴリズム”を使うことがあるが,最急降下法のことは”最尤推定法”とは呼ばないのと同じである。モデルと推測方法と計算アルゴリズムは区別しなければならない。結局,この論文で言うところの”ベイズ統計学”というのは,”パラメタ推定を行う方法の一つ”として認識されている(次の第3章に明確に,”ベイズ統計学はパラメータ推定の枠組みのひとつであって,統計モデリングの本質ではない。”といっているので,私の論文の読み取りは正しそうだ。)渡辺先生のいうところのベイズ統計学とはだいぶ違いそうな雰囲気がある。心理学では多くの場合~中略~しかし,確率モデルとして現象を記述する場合,データが仮定した確率分布から生成されるという想定さえ成り立てばよい。~中略~確率モデルの表現で重要なのはデータを得る具体的な手続きではなく,データがどういう確率分布に従って得られるか,という点だけである。とあるが,いまいちよくわからない。母集団を仮定しているとかなんとかとコイン投げの話をしているが,コイン投げだって母集団を仮定していると思う。”データが仮定した確率分布から生成されるという想定さえ成り立てばよい”といっているが,これが成り立つかどうかがわかっていれば統計学なんていらないわけで,データ生成モデルはあくまで仮想的なものであるという認識がなさそうである。マルチレベルモデルではデータがどのように取られたかを考慮したモデリングがなされているし,データ取得の手続きを無視したらiidの仮定なども無視することになりそうだがそのあたりはどう考えているのか。データ生成メカニズムを確率モデルで記述するというのは,データがどのように発生するかを,確率分布を使って数理的に表現する,という意味であることがわかる。結局,確率モデルとはなんなのか明確にはわからない。検定は検定であって,統計モデルではない。心理学における伝統的なデータ分析手法との違いデータ分析手法と統計モデリングは直接比較できるものではないと思う。いうか何を比較しているのかわからない。次に参加者がどのような行動を行うかについての予測を導く目的で使われることが少なく,またその関心からも外れている。それは,伝統的な心理学の方法論がおもに行動の説明に重点が置かれており,予測が重視されていないからであると考えられる。実験計画法に則ってデータを収集し平均的な行動の傾向の違いを分析した場合,群Aと群Bの平均的な値の行動の傾向の違いは推定されているわけで,母集団においてこういう介入を行った場合にはこういう行動がこれくらい増える(減る)といったことは因果効果の推定から考えていることだと思うが違うのだろうか。,”行動の説明”と”行動の予測”というという言葉の使い分けの意味はなんだろうか。行動が説明できたら予測もできると考えるのが自然ではないだろうか。結局細かい因果効果の説明を積み重ねていけば,ある種の行動の予測ができるようになってもよいと思うが,一度だけの実験結果と統計モデリング(とこの論文で読んでいるもの)を比較するのはミスリーディングのように思う。ここからわかるように,確率モデルを仮定したうえでパラメータを推定することで,理論的に知りたい値の推論や予測が可能になる。さきに示した2群の平均値差の話でも,群AかBかによって大雑把な値は予測できるのだからよいのでは?結局”伝統的な分析手法”といいながら,最初の方で除外した検定論を仮想の敵としたいつもの論法になっているように思われる。4.ベイズ推定による統計モデリングパラメタ推定方法とモデリングは別の話だから,ならべてお話をするのは変な気がする。どのようにパラメタを推定するのか,という話であればわかるが。MCMC対数尤度の最大値を求める問題にだって汎用的なアルゴリズムはあるし,Mplusといったソフトや,Rのnlme関数などを使えばOKだと思う。最尤法でもうまく解けないという問題がしばしば生じるというのは,数値計算アルゴリズムの問題であってベイズ推定だから解消できる問題というわけではない。たしかにMCMCを使うことで計算量の問題が比較的現実的になったり,局所最適解などの問題に悩まされないですむことはあるが,MCMCだって極めて相関が高いパラメタがあった場合にはパラメタ空間を自由に動けなかったり,ポテンシャル障壁の壁に阻まれて双山の分布の片方からしかサンプリングができないという問題もある。mixtureモデルのラベルスイッチング問題や収束診断がどれほど正しいかもわからない。そのような問題があるにも関わらず,MCMCだけが最高という論調には到底賛同できない。この長所により,数学的に高度な演算から標本分布の導出などをせずとも,パラメータの推定ができるようになった。最尤推定法の文脈でも漸近論があるので,パラメタの推定量の分布が正規分布になると考えてよいこともある。たしかに,パラメタの推定量が漸近的に正規分布に従うというのは,近似的な方法であり,正確な標本分布が導出できているわけではないが実用的にはよく使われている。異分散を仮定した平均値の差の推定については,構造方程式モデルなどを利用すれば最尤法で解くことが可能である。差の推定???全体的に文章が正確で無い気がして読んでいていちいち引っかかってしまう。したがって,MCMCでは最尤法などに比べて,パラメータを求めるためのアルゴリズムを容易に,汎用的に自動化できるのである。今どき自動微分もあるし,尤度関数を作ればパラメタを推定してくれるソフトだっていくらでもあると思う。マルチレベルモデルなど変量効果項を含むモデルにおいてMCMCを使うことが有効な理由は,アルゴリズムが自動化できるからではなく,数値的に厳しい積分計算をうまく回避できるからだと思う。述べたように,階層モデルを最尤法で解くのは簡単ではない。それは,頻度主義統計学がパラメータを固定値と想定することから,パラメータに確率分布を仮定することが頻度主義の理論的枠組みからは困難だからである。マルチレベルモデルモデルではパラメタの分布を考えているし,そのパラメタの推定方法として最尤推定法を使うことも当たり前に行われている。パラメタ推定が困難になるのは積分計算の大変さとデータが少ないことによって,変量効果項の分散の推定値が0になってしまうというような問題である。たしかにMCMCを使って事後分布の平均を推定値とすればこうした問題は避けられるし,繰り返しの計算のなかでランダムに生成された分散がきっちり0という値を取ることはありえない。小さい正の値をとることはあるが,log0といった計算が発生することはない。これによって,一見して不適解は回避できる。ベイズ的にパラメタの事前分布を想定したとしてその事前分布のパラメタ(ハイパーパラメタ)は定数だと思う。すると,ベイズであってもパラメタが定数であることはある。最尤推定とベイズ推定の違い渡辺先生の最尤推測とベイズ推測の違いなどをきちんと読んだほうが良い気がする。アルゴリズム)では,初期値によって推定値が変わってしまうという,初期値依存性が生じ,一意に解を得るのが難しい。理論的にはMCMCは無限にサンプルを続ければ正確な事後分布を再現できるが,現実的にはそうは行かない。その結果として,局所からしかサンプリングしていなかったりなんだりかんだりがあるし,初期値の選択はMCMCであったとしても重要だと思う。,”一意に解を得るのが難しい”という言葉の意味もちょっと不明。MCMCで定常分布からのサンプリングがなされたとしても,サンプリングする個数で推定値が微妙に変わったりするわけでMCMCだからといって一意に推定値が定まるわけではない。ひとつめは,行動データの生起メカニズムを確率モデルで記述することで,理論の精緻化と行動の予測に役立つ可能性である。ひとつは,心理的な特徴を測定・推定するときに,より理論的に妥当になる可能性である。いっているが,これらはすべて”統計モデリングによる利点”だと思う。ベイズ的に,パラメタの事後分布の一部を推定値に用いることの利点ではないと思う。測定・推定を並列に書いているが,全く別のものなので並べて書くことには違和感がある。具体例はすっ飛ばして,推定の区間推定ができる点も,ベイズ統計モデリングの利点とあるが,推定の区間推定ってなに?と思ったのと,区間推定ができることは何も事後分布をパラメタの推定に用いたときのみの利点ではない。モデルを書いたプログラムのコードの共有が簡単であることも意味するとあるが,その理由がわからない。RなりPythonなりMplusなりSPSSなりSASなりStataなりなんでもいいけど分析に使ったコードをそのまま共有すればいいのでは???あとの段落でRだとモデルと推定が分離できないとか書いてる気がするが,応用系の人が自分で推定プログラムを書くことなんてほぼ無いわけで,例えばRのlm関数に何を書いてあるかとか見れば報告されてるモデルと分析で想定したモデルが正しいかどうかは見てわかると思うのだけれど。あと,検定批判の部分は今回の論文の本筋ではないといいつつ,結局再現性などの問題などは検定批判の文脈で出てきたことな訳で,しっかり議論を入れているので,議論が混乱する。統計モデルを推奨することと,再現性の問題は別問題だと思うのだが私の誤読だろうか。その他気になったこととして,関数の形がわかるほど精緻に研究されている研究をより精緻にしていく研究も大事だけれど,新しい現象を発掘していくような研究も大事だと思う。なんか出てきたモデリングの例がその関数の形がわかったからどうなんだろう,というような印象がある。関数型がわかっていて,それを階層化して当てはまりが良くなったとしても,そりゃ個人差あるから当然だよねくらいの気持ちしか無いし,あまり面白みがよくわからない。検定の文脈で変量効果項を無視するとタイプIエラーが増えるというのは大問題だが。なんか,出された例が魅力的に見えない。めんどくさくなったのであとは省略するが,気になった点としては以下の点。ベイズ統計(ベイズ推定)=MCMCという図式。用語の使い方があまり正確でない事によるよくわからなさ。統計モデリングとベイズ推定の関係のなさ。MCMCを使えば不適解を出さないからよい的な感じに見える。結果的にMCMCで適当にパラメタ推定しておけばOKというような感じ?再現性の問題とモデリングとの関係のなさ。確率的プログラミング言語とモデリングの関係のなさ。仕事の仕方について自分なりやっていること工夫など自分のためにメモを残しておく。言語化することによって,より精緻化したり,不要な部分を削除したり工夫ができるようになると思われる。論文を書く手順アイデアを思いつく先行研究を調べる(このときに関連論文をまとめておくとそのままイントロに使えるので,その手間を惜しまないようにしておく)先行研究を参考にしながら,新しいアイデアを形にまとめる。contributionについて意識をしながら,何が主張できるのかを言語化する。プログラムを実装する(必要に応じてシミュレーション,実データ解析を行う)。結果の図表のイメージを作る。このとき,自分の主張に適切な形になるように留意。簡単な条件だけでなく,難しい条件なども含めておく。論文全体のアウトラインを作る。イントロのストーリーをきちんと考える。あとで目的が大きく変わらないように,目的の部分はぶれないように注意。イントロを書きながら引用文献を追加してく。理論的な部分(数式を書いたりなんだり)は淡々と作業として行う。シミュレーションなどの条件,結果,考察も順に淡々と書く。ドラフトを書き上げることを目指す。ドラフトが書けたら,全体の推敲や記述を追加するべきところなどを考える。ほどよいところで,校閲に出す校閲の結果を確認して良さそうであれば,投稿する。研究全体の捉え方・研究の実行方法について論文執筆やアイデアの具体化をする際には,何も考えなくても実行できるくらい細かくタスクを分割する(アルゴリズムに落とし込めるように)。簡単でつまらない作業を積み重ねるといつの間にか一連の塊になっているようにする。大前提として,論文執筆はつまらないしアイデアを考えることも面白い作業であるわけではないことを受け入れる。つまらない作業を積み重ねることが研究だと割り切る。作業それ自体はつまらないかもしれないが,研究をすることで,自分の人間性を磨き,世の中に貢献することができることを理解する。研究と執筆は習慣(歯磨きと同じ)。やる気があるときにやるのではなく,やる気とは関係なくやる。考えることは書くことと同じ。面白いからやるのではなく,解かなければならない問題があるからやる。大事なことの一つが,解くべき問題を同定すること。この問題設定の良し悪しによって,研究の質が決まってしまう。アドバイスを求める相手を常に持つ。現象を捉えるために言語が必要になるので,言葉に敏感になる。効率的な論文執筆は難しいが,非効率な論文執筆を避けることはできる。非効率な論文執筆方法は複数の論文を掛け持ちして書くこと。プロジェクトは一つに限定して,論文投稿するまでは基本的に他のプロジェクトを開始しない。一つの論文のネタに書けていい時間は3~4ヶ月程度を目安にする。時間がかかりすぎないように手早くまとめる。タイムスパンとしては,テーマを決めることとアイデアを形にして行けそうかどうかを判断するのは1~2ヶ月以内で,論文執筆は2ヶ月以内程度で行う。ソフトやPCや機材にはあまりこだわらないが,結局認知資源と手間を削減できるものを選択する。Word,Excel,Rをきちんと使えれば,バージョン管理ソフトは実質的に必要にならない気がする。TeXは認知資源が必要すぎる。Pointで作ったほうが,疲れない。執筆は始めるのが一番めんどうなので,何も考えずにソフトを立ち上げ,”ああああ”など打ち込んで,書き始めた気になることが大事。何もできないので,寝る。実データに最先端のモデルをいくつか適応してみることも研究。このときに,特にどのような困りが生じるのか,狙ったとおりにならない点を注意深く観察する。”もっとこうだったらいいのに”という点を感じる。言葉の定義をキチンと自分なりに消化する。研究者が必ずしも,同じ言葉を同じ意味で使っているとは限らない。定式化が意味不明なものを理解できる形にするのも大事。既存のモデルにこだわり過ぎない。そもそもなんのためにそのモデルが存在したのかを調べる。自分がしっくりこないものを大事にする。いうふうに表現するとしっくり来るのか,気持ちのよい表現を考える。他分野の理論研究ですでに利用されている知見が利用できないか考える。学問がつながっていることを意識する。流行しているものは決して追わない。誰かがやるから,自分がやれるようになるころには,研究のネタはなくなる。地味だけど大事な研究もあることを意識する。誤解,誤用されているモデルについて考える。疑問や興味をひたすら言語化する。異なったことでも意外とつながっていることがあるので,自分の真の興味に敏感になる。テクノロジーの発展に注目する。新しく得られるデータや分析方法などがあるかどうか。誤った問題設定を行わないように気をつける。意味がないと感じられることは決してやってはいけない。自分にとって意味があっても,他人に意味がないと思われることもやってはいけない。これは,ウケが良い研究を行うということを意味しているのではない。意味がある研究ができるかはわからないが,意味がない研究を避けることは絶対に必要。Modelsより高速なコードにはなっていないが,これで基本的にはOK。添字が慣れたものではないが,読めばわかるような感じになっている。functionを仮定して従属変数が連続量以外でもOKな状況に持っていけるはず。uはJ×Lの行列でデータを指定する。下のリンクの論文を読んで,ベイズ統計について,少し気になる記述が多かったので,気になった点や考えたことをメモしておく。https://www.jstage.jst.go.jp/article/psychono/37/2/37_37.25/_pdfベイズ統計学については東京工業大学の渡辺澄夫先生のWebページが有用。以下のページのすべてのリンクを熟読しておきたい。http://watanabe-www.math.dis.titech.ac.jp/users/swatanab/joho-gakushu2.htmlまた,「ベイズ推論:いつも何度でも尋ねられること」のページに書いてあることは一日一度読み上げたい。ベイズも最尤も正しい統計的推論ではないが、どちらでも推論を行うことはできる。正しい統計モデルや正しい事前分布は存在しないが、それでも推論を行うことはできる。推論の結果は間違っているが、どのくらい間違っているかを調べる方法はある。間違いの度合いを小さくしようと試みること。真実が見つかるわけではない。それはそれとして,本文をみていく。のっけから日本語がよくわからない。WinBUGSが出てきたのは,1996年あたり。Cambridge.)この数年というには古い気がする。ベイズ統計学はそもそも考え方を異にするとされる。合っていけばよいのか。統計的な解析方法?)のことを指しているのだろうが,より具体的にはなんの利用方法か明確でない。これに対してベイジアンのアプローチが有利な特徴を持っていることを示す。心理統計ー>心理統計学また,心理統計学とベイジアンアプローチという比較しようがないものを比較しているのが気になる。帰無仮説検定の利用の仕方に問題点があることは指摘されて来た。,「従来の統計法」というものが,「帰無仮説検定」のみを指すかのように記述されている。このことが結果に大きな差異を生む。データ生成過程と尤度を同一視するのはどうなのだろうか。データ生成過程をも想定しないでどのように統計的推測を行うのだろうか。分析者)が存在するのだろうか。結論が異なることに注意が必要である。