みんなのPython勉強会#9で、統計の話をしながら、相変わらず統計がよくわからんと思っていたところに、とんでもなく分かり易い入門書を発見したので、記録しておきます。
Amazonでの評価が異常に高かったので、購入してみましたが、読んでびっくり! 私も、理数系の大学をでているので、この本に出てくることで知らないことは1つもありません。正規分布、χ2分布、t分布、チェビシェフの不等式... しかし、説明の仕方や順番を工夫するだけで、ここまで物事を分かり易く伝えることができるものなのかと、感動しました。著者の小島寛之先生、説明の天才だと思います。 分かるように伝えるということの重要性を改めて認識しました。いやー、しかし久しぶりに凄い本に出会った。 スポンサーサイト
|
去年の年末、友人たちとお寿司屋さんで忘年会をしていたとき、なぜかポアンカレ予想の話になりました。同席されていたちょっと偉い人から、数学に関係している学科を出ているということで、解説を求められるも、まったく素養が無くバカを丸出しにしたことが気になっていました。その後からすこし興味をもって調べてみたので、この本やその元になった番組のことは知っていたのですが、当初は、「一般人相手の書物読んでどーする?ちょっとストイックに学ばないとダメでしょー」とか思っていました。まあ、そうは言っても日常業務があるので、そうそうポアンカレに時間を割くこともできません。そんななかでも結構分かりやすかったのは東大の学術俯瞰講義でした。これはネットで誰でも無料で聴講することが出来ます。 「数学を創る -数学者達の挑戦-」―学術俯瞰講義2009 このなかの「形を理解するための数学」坪井俊先生の講義でポアンカレ予想につながる近代的な幾何学(解析もか?)の話を知ることが出来ます。これを見て、ポアンカレさんは形を分類したかったこと、それはつまり穴の数(ボールとドーナツは違う形だけど、ドーナツとティーカップは同じ)なのね、ということがわかったのですが、やはり正しい証明を発表するも、引きこもってしまったペレリマン先生のことが気になっていて、本屋さんで文庫になって平積みされていたこの本を読んでみました。 元NHKスペシャルだけあって、構成がうまいのですらすら読めるし面白いです。 一般向けの本なので、どうしてもポアンカレ予想が宇宙の形を解き明かすロマンとともに語られますが、坪井先生の講義では、知の巨人ポアンカレが惑星の軌道を解くための微分方程式の解が3次元多様体になるところから形への分類に興味が出てきたということになっています。 本の中には、まー、天才奇才のオンパレードで、自分も天才に生まれたかったなとちょっと思ったりしますが、今のように楽しく暮らせるのはアホだからか?と思えたりして、少なくとも読んで生きる気力は削がれません。本の中でロシア人であるペレリマン先生の恩師が次のような言葉を残しています。 「才能豊かな人間にはその才能を許さなければならない」 というわけで、石川君の無免許運転は許してもらえそうだから、ウッズさんの浮気も許してあげたらいいんじゃないでしょうか。 |
この本、縦書きなので、基本的に数学を学ぶための本ではありません。数学の色々な理論が実社会にどのように生かされているかが説明された後、基礎的な(数学科っぽい)数学と応用的な(工学部っぽい)数学の違いが筆者の視点から解説されます。最後は、数学教育論の様相を呈しますが、共感できる部分が多かったので楽しくてあっという間に読んでしまいました。 大学で数学が教育される際、動機付けがほとんどないという指摘の部分は、はげしく同意です。この基礎的な理論にこんな応用例があるとか、これを理解するためには、この理論を知る必要があるという話から数学の講義が始まったら、もう少し理解できたかも・・・。 などといっていないで、本書によれば挽回のチャンスはいつでもあるとのことなので、興味深い応用例を探しつつ、すこし精進してみようかと思った読後でした。 |
Mathematicaの作者が満を持してリリースした検索エンジンの”Wolfram Alpha”ですが、さすが天才が作っただけあって、凡才には使い方がいまひとつピンとこないなーと思っていたところ、iPhoneアプリとしてWolfram Alphaが出ていたので思わず買ってしまいました。お値段は260円位だったと思います。
しかし、これ実はWebからアクセス出来るWolfram Alphaと出来ることは一緒・・・ ということに気がついたのは最近で、そのまえにWolfram Alphaで数式を普通に処理できることを知ることが出来たので、260円だし、怒ってはいません。 例えばこんな感じです。 1/e π/4 log(2) ちなみに、iPhoneでは、Σや積分記号、微分記号などが入力できる専用キーボードが表示されるので、260円などタダ同然の金額払う価値はあります。 しかし、こんな便利なものが小学生のころから身近にあったら、みんな天才数学者としての才能を開花させてしまうのか、Webで簡単に計算できるから数学への興味が半減するのか、どっちなんでしょう・・・。 |
マニア度があがりすぎて、誰も興味ないかもしれませんが、ちょっと仕事で簡単なスクリプトを作ったので、貼っておきます。
共分散分析をするときに、入力データの各群の回帰係数が等しいかどうかを先に検定します。これで等しくないとその先には進めないのですが、逆にこの部分だけを使っていろいろ物事を言うこともできるかなというのもあり、実装してみました。 武藤眞介著「統計解析ハンドブック」朝倉書店p.p.272-275を参考にしています。273ページの式(4)に間違いがあるので注意してください。(初版6刷) スクリプトでは修正済みです。いやー、scipy大変便利です。 from scipy.stats.distributions import f # input data is list of below # data1 [[x,,,],[y,,,]] # data2 [[x,,,],[y,,,]] #.... # return (f_v , p-value ) def test_regcf_uni( data ): n = 0.0 for (i,v) in enumerate(data): if len(v[0]) <> len(v[1]): raise ArithmeticError, str(i) + 'th data length inconsistency' n += float(len(v[0])) k = float(len(data)) u = [] v = [] w = [] r = [] for (i,_d) in enumerate(data): u.append( sum( float(_x)*_x for _x in _d[0]) - (sum(_d[0])*sum(_d[0]) / float(len(_d[0]))) ) v.append( sum( float(_y)*_y for _y in _d[1]) - (sum(_d[1])*sum(_d[1]) / float(len(_d[1]))) ) w.append( sum( float(_x)*_y for _x,_y in zip(_d[0],_d[1])) - (sum(_d[0])*sum(_d[1]) / float(len(_d[0]))) ) r.append( v[i] - w[i]*w[i] / u[i] ) SR = sum(r) SE = sum(v) - sum(w)*sum(w) / sum(u) f_v = ( (SE-SR)/(k-1.0) )/( SR/(n-2.0*k) ) return (f_v, f.sf( f_v , k-1 , n-2*k ).tolist()) sample_data = [ [[4,2,1,3,5],[180,150,135,175,200]],\ [[3,5,6,4,7],[155,190,205,165,210]],\ [[3,6,2,5,4],[190,240,175,215,205]] ] print test_regcf_uni( sample_data ) 改行されてしまっているところがありますが、¥が入っていなければ、実際は1行です。 そのまま、切り貼りでお使いいただいてかまいませんが、もしよく分からなかったら、ご一報ください。 |
| ホーム |
|