Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Think stats 1章プログラマのための統計的な考え方 20121004

3,543 views

Published on

Published in: Education
  • Be the first to comment

Think stats 1章プログラマのための統計的な考え方 20121004

  1. 1.  Think  Stats -Probability  and  Statistics  for  Programmers- プログラマのための統計⼊入⾨門 第1章  プログラマのための統計的な考え⽅方 Be  a  pythonista!!! @millionsmile 4th  of  Oct,  2012,  集合知プログラミング勉強会LT
  2. 2.  2Pythonの実⾏行行環境を準備する Pythonのインストール(まだ2.x系をインストールがよさげ) http://www.python.org/download/ 環境設定いろいろ http://www.pythonweb.jp/install/ シェルの⽤用意。IPythonオススメ http://ipython.org/download.html テキストエディタの⽤用意。Sublime  Text  2がちょーオススメ http://www.sublimetext.com/2 ※テキストエディタ戦争には巻き込まれたくはないので基本的にはお好みのエディタをご利⽤用ください。 ※PEP8とか適宜プラグインやパッケージを設定する必要があります。 ※PythonTidyとPython、IPython  Integrationあたりがオススメ  by  @kenchan0312_aki
  3. 3.  3統計的なアプローチ 個⼈人的な経験に基づくデータのことを事例証拠(anecdotal   evidence)といい、往々にして、少なすぎる標本数(small   number  of  observations)、選択バイアス(selection  bias)、 確証バイアス(confirmation  bias)、不正確さ(inaccuracy)と いった問題を持っている。 事例証拠の問題を解消するために「統計」という道具を使いこな し、より正当でより正確な結論を出すことができる。統計には以 下のようなものが含まれる。 データ収集(data  collection)、記述統計学(descriptive   statistics)、探索的データ解析(exploratory  data  analysis)、 仮説検定(hypothesis  testing)、推定(estimation)
  4. 4.  4調査データ 調査には2種類あり、ある時点における集団のスナップショットを 観察する横断的調査(cross-sectional  study)と、⻑⾧長期的に集団 を繰り返し観察する縦断的調査(longitudinal  study)がある。 調査したい対象の全体のことを⺟母集団(population)という。 調査対象の⼈人たちは回答者(respondents)、回答者の集団はコ ホート(cohort)と呼ぶ。 横断的調査は代表的(representative)である必要がある。⺟母集団 のどの要素も調査となる機会が均等であることを意味する。 意図的にオーバーサンプリング(oversampling)して統計上有効 な推計を導き出すこともあるが、⽋欠点もあるので注意が必要。
  5. 5.  5pythonを書いてみる サイコロを振って数字を出⼒力力するクラス(データ型)を作る [import  モジュール名]機能のかたまりをモジュールといい、シェルをたちあげたときはモジュールはほとんどないので、importを 使って必要なモジュールを読み込む。ここではrandomという乱数を発⽣生させるモジュールを読み込んでいる。 [class  新しいデータ型の名前:]classはデータ型を設計(定義)するときに使う。データ型というのはデータ属性(アトリビュート) と関数(メソッド)の集まりである。何か⼀一つのプログラムをまとめて作りたい時にclassでまとめておくと便利である。最後に「:」 を必ずつける [def  関数名(引数):]defは⾃自分で関数を定義したいときに使う。既存の関数としては例えばデータを出⼒力力するprintや⻑⾧長さを測るlen などがある。(引数)は必ず何か⼊入⼒力力しないとエラーになるので、引数がない場合は、⾃自分⾃自⾝身を参照する意味の self を書く。  最後 に「:」を必ずつける [データ属性]データ属性とはあるデータ型(class)に属している専⽤用の変数のこと。あるデータ型(class)の中で、2つのdefで定義 した関数間で変数の値をやりとりしたい場合、先頭にself.データ属性と定義しておかないと、データの引渡しに失敗するので注意が 必要。 [関数.メソッド()]関数にはデータを処理するための様々な道具が⽤用意されており、それらをメソッドと呼ぶ。randomという関数に は指定された範囲内の数値を発⾏行行するrandint(開始の数字,終了の数字)があり、random.randint(1,  6)とすれば、1~6の間でランダ ムに値を発⾏行行するという指定をすることができる。 [__init__]初期値を設定を⾏行行う。 コードは「dice.py」で保存する
  6. 6.  6書いたコードを実⾏行行する 前⾴頁で保存したdice.pyのディレクトリーを指定して実⾏行行処理を⾏行行 う 前⾴頁で保存したdice.pyを読み込む dice.pyのDiceクラスに5という引数を渡す shootメソッドを実⾏行行すると、1~5の間でランダムに値を発⾏行行する shootメソッドを実⾏行行すると、1~5の間でランダムに値を発⾏行行する 初期(__init__)では引数5が読み込まれ、変数face_numに値が設定された
  7. 7.  7サンプルデータをダウンロード サイトにアクセス。 I  accept  these  terms をクリック http://greenteapress.com/thinkstats/nsfg.html 以下のファイルをダウンロード 2002FemPreg.dat.gz →回答者ファイル(⼥女女性回答者7643⼈人分。1⾏行行1⼈人のデータ) 2002FemResp.dat.gz →回答者から報告のあった妊娠のデータが1⾏行行ごとに記録 ダウンロードしたファイルはローカルの任意のフォルダーにおい てください。
  8. 8.  8サンプルコードの実⾏行行 サンプルコードをダウンロード http://greenteapress.com/thinkstats/survey.py サンプルコードを前⾴頁のサンプルデータと同じディレクトリに保存 シェルで実⾏行行、もしくはSublime  Text  2でbuildすると Number  of  respondents  7643 Number  of  pregnancies  13593 と出⼒力力される。
  9. 9.  9あとは各⾃自で あとはテキストみながらやってみて、サンプルコード眺めて、 Pythonを習得してみてください。 第2章では、pythonで算術平均、分散、標準偏差、ヒストグラム などの記述統計学をやっていきます。
  10. 10.  10初⼼心者に嬉しい本とかサイト 『Python  スタートブック』辻慎吾著、技術評論社 『初めてのPython』Mark  Lutz著、オライリー・ジャパン 『⼊入⾨門  ⾃自然⾔言語処理』Steven  Bird  et.al著、オライリー・ ジャパン PEP8の⽇日本語訳サイト http://oldriver.org/python/pep-0008j.html 集合知プログラミング解体新書 https://sites.google.com/site/prgclctintelligence/errata

×