ただふれたものについて書くブログ

あんまり正しくない話を適当に書くブログ

Pythonでポアソン分布回帰モデルまわりの書き方

pythonで書くのにはどうすれば良いかを確認しながら読んでいる。

ポアソン分布を書く

from scipy.stats import poisson

x = np.arange(0, 20, 1)
for mu in [3.5, 7.7, 15.1]:
    plt.plot(x, poisson.pmf(x, mu), label='{}'.format(mu))
        
plt.legend()   
plt.show()

f:id:taizo_onexone:20180606072927p:plain

ポアソン分布に従ったランダムな値を取得

平均 \lambda=7ポアソン分布に従った値を100個取得する。

import numpy as np
np.random.poisson(lam=7, size=100)

確認

import matplotlib.pyplot as plt
plt.hist(data, bins=15)

f:id:taizo_onexone:20180603235937p:plain

histgramの値を整形して、グラフを作成する

n, bins = np.histogram(data, bins=15)

plt.scatter(x=bins[:-1], y=n, linewidths=1)
plt.plot(bins[:-1], n, linewidth=1, linestyle="dashed")

f:id:taizo_onexone:20180604000707p:plain

最尤推定

グラフ化して、ざっくり最尤推定値がどこになるかをみる

from scipy import stats

l = np.arange(0.1, 20, 0.1)
# stats.poisson.logpmf(): 対数尤度関数
logL = np.array([sum(stats.poisson.logpmf(data, i)) for i in l])

x = np.linspace(0, 20, len(logL))
plt.plot(x, logL)
plt.axvline(x=x[logL.argmax()], color='red', linestyle='dotted')

f:id:taizo_onexone:20180604002532p:plain

\hat{\lambda}=7 に近い値になる。

ポアソン回帰モデル

まずはデータ取得。

生態学データ解析 - 本/データ解析のための統計モデリング入門から。

df = pd.read_csv('http://hosho.ees.hokudai.ac.jp/~kubo/stat/iwanamibook/fig/poisson/data3a.csv')
df.head()
y x f
0 6 8.31 C
1 6 9.44 C
2 6 9.50 C
3 12 9.07 C
4 10 10.16 C

因子型の数値変換

f列は、TかCが埋まっている。

df.f.head()
0    C
1    C
2    C
3    C
4    C
Name: f, dtype: object

Rだと、因子型が文字列でもよろしくやってくれるが、Pythonの場合は変換をする必要がある。 pandas.get_dummies で変換できる

df['f'] = pd.get_dummies(df['f'])['T']
df.f.head()
0    0
1    0
2    0
3    0
4    0
Name: f, dtype: uint8

statsmodels.api.GLM を使う

import statsmodels.api as sm

x = sm.add_constant(df.x)
fit = sm.GLM(df.y, x, family=sm.families.Poisson()).fit()
fit.summary()

f:id:taizo_onexone:20180604075704p:plain:w400

こちらは自動で

statsmodels.formula.api.poisson を使う

import statsmodels.formula.api as smf

fit = smf.poisson("y ~ x", data=df).fit()
fit.summary()

f:id:taizo_onexone:20180604075756p:plain:w400

線形予測子の書き方

それぞれ、書き方がある

線形予測子 smf.poisson のformula statsmodels.api.add_constantのdata
一定 \beta_1 y ~ 1 np.repeat(1, len(df.x))
x \beta_1 + \beta_2 x y ~ x df.x
x + f \beta_1 + \beta_2 x + \beta_3 f y ~ x + f df[['x', 'f']]

AICの取得

statsmodels.api.GLMstatsmodels.formula.api.poisson

result.aic
# 474.7725015397216

参考

AI vs. 教科書が読めない子どもたち

AI vs. 教科書が読めない子どもたち

AI vs. 教科書が読めない子どもたち

読んだ。

  • 「AIが人間の能力を超える、シンギュラリティが近い将来にやって来る」ことはない
    • AIは意味を汲み取るための読解力がついていない
  • ただ基礎的な読解力がない学生がいる
    • 問題の文章を正しく理解できない人たちがいる
  • AIが全てを置き換えることはない。ただ、AIが置き換えられない部分で勝てない人材は置き換わっていくのではないか

AIは思うほどでもないが、人間側の能力がその思うほどもないAI未満である人たちがある程度いるため、 AIに置き換えされる仕事をしていた人と、AIが置き換えできない事をしている人たちとの格差が広がってしまうのではないかという警鐘。

東大合格を目指す東ロボ君を軸に、AI開発の課題や教育の問題など、色々な課題に触れながら説明されているが、最近ブームだったAI、少し世の中の頭が冷えてきたタイミングで、軽いアンチテーゼ的な内容、それに対して著者の人間性が完璧なタイミングで世に出てきた本だと思う。

先日のラジオのゲスト出演の話で概要はわかる。

2月22日(木) 10:00-11:00 - 伊集院光とらじおと

radikoなので期間は限定。

TEDも。

新井紀子: ロボットは大学入試に合格できるか? | TED Talkwww.ted.com

iKnowの連続学習日数記録が途切れた

f:id:taizo_onexone:20180114011409p:plain

毎日少しずつ進めていたiKnowの連続学習日数が407日で途切れた。

iKnowは2007年くらいに始まったサービスで、もともと英語学習サービスだったものが、一度Smart.fmという総合学習サービスになって、またiKnowに戻った経歴がある。

iKnowが始まったときに、あまりのUIの出来に驚いて、そこからずっと少しずつ使っていた。Smart.fmになったときに公開されていたAPIとかも触っていた。企業主催のオフ会にも行った。有料になってからも2年くらいは年会費を払って、もう永久会員代を払ってのんびり利用している。

iKnowは当時からデザインが素晴らしかった。PCとキーボードで英語学習が続くかのアイデアがいっぱいあった。Memory bankという学習タイミングの管理、だいたいの単語には例文が1から3つあり、そのほとんどに画像イメージが用意されていること。連続学習記録、日数と学習時間の管理。当時はそれが無料で提供されていて、なんだこれはってなった。今は、機能が少なくなり、運用モード化している予感もあるが、それでも十分使いやすいと思っている。

408日目を更新するには、2019年になる。やはりちょっとショック。

SING/シング

SING観た。

夢を追いかけて失敗して挑戦して失敗して立ち直って成功するという王道パターン。 動物たちの愛嬌や、最後のライブもツボをおさえていて超安心。

何も考えないで観れる。王道良い。

家計簿アプリをマネーツリーからマネーフォワードに乗り換えた

moneytree.jp

moneyforward.com

数年ほどMoneytreeを使っていたけれども、試しにマネーフォワードを使ってみたらそっちのほうが自分には良さそうだったので乗り換えた。

自分の家計簿アプリの使い方

自分の場合、手入力で管理するものと、自動更新に任せるものの二つにわけている。

  • レシートなどの現金の支払いの管理は iXpenselt
  • Moneytreeでカード連携をして、ざっくり支出の管理

iXpenseltの入力は2009年からしているので、ただ習慣化しているのでなんとなく今もつけている。 何よりアプリのデザインがあまり変更にならないのでちょうどいい。 (1回だけフラットデザイン大リニュアールされたことがあったけど、アップデートで使い勝手が大体元に戻った)

Monetytreeとマネーフォワードの違い

少し検索すればZaim を含めた比較がいっぱい出てくる。

sannji.com

使っている感覚だと、マネーフォワードのほうが細かいデータ収集ができる。Moneytreeのほうが直感的にわかりやすいアプリという印象。 加えてマネーフォワードは分析機能があり、家計診断や未来シミュレーターなど家計から得られる情報が多い(有料だけど)。

逆にマネーフォワードのほうが設定する項目が多いので、ざっくり分かればいいのであればMonetytreeのほうがシンプルな気もする。 今はマネーフォワードの多機能のほうが使いたい機能が多かったので、そちらに乗り換えた。 Moneytreeもとりあえず無料で更新はしておくかもしれない。

地味に家計簿アプリを使っていて面倒なことは、振替だったり、経費精算で支払ったものをどう扱うかの自分ルールを決めておかないといけないところだと思う。そこらへんをよろしくやってくれる家計簿アプリの泥臭さは本当にすごい。世の中、キャッシュレス化やセキュリティとかもっと整備されてもっと便利になって欲しい。

アマゾノミクス データ・サイエンティストはこう考える

アマゾノミクス データ・サイエンティストはこう考える

アマゾノミクス データ・サイエンティストはこう考える

読んだ。

前提として、アマゾノイクスとAmazonについて書かれているようなタイトルだけど、amazonだけではなく、昨今のWeb系のデータ企業についての取り扱い事例や課題が主な内容。

著者の経歴を見ると、いろんなところに関わっているのがわかる。

ワイガンド,アンドレアス ビッグデータの世界的な専門家。米アマゾンの元チーフ・サイエンティストとして、創業者ジェフ・ベゾスとともに顧客にとって使いやすいプラットフォーム構築に尽力。今日のアマゾンの基礎を作り上げた。ソーシャルテクノロジー、モバイルテクノロジー、消費者行動、さらにはそれらが生み出すソーシャルデータ革命に関する世界的権威。ドイツ・ボン大学で物理学を学んだのち、1991年にスタンフォード大学で物理学博士に。現在はソーシャルデータ・ラボの創設者兼ディレクターを務める。コンサルタントとして、アリババ、ゴールドマン・サックス、ルフトハンザなどのビックビジネスから婚活サイトや旅行サイトまで、幅広い企業のデータ戦略を指南してきた。

この本の主張は、明確でデータの「透明性」と「主体性」だ。 透明性は個人が自らに関する情報を知るすべてのを包括する概念、主体性は個人が自らに関する情報にもとづいて行動する権利を包括する概念。

ネット上の行動履歴はもちろん、IoTという言葉が広がっていたり、すでにセンサーがそこら中にはびこっている。匿名レビューでも、他のデータとの付き合わせから個人を特定される可能性がある。そういった中で、自分たちの作ったデータからどのような恩恵を受けられるか、どういった問題はあるのか。色々なデータにまつわる話題をまとめた一冊。

LION/ライオン~25年目のただいま~

f:id:taizo_onexone:20180105201801p:plain

gaga.ne.jp

観た。

あらすじ

2012年、驚愕のニュースが世界を駆け廻った。5歳の時にインドで迷子になり、養子としてオーストラリアで育った青年サルーが、Google Earthと出会い、25年ぶりに家を見つけ出したというのだ。このまさかの実話を元に、『英国王のスピーチ』の製作陣が描き出すのは、一人の男が辿ったあまりに数奇な人生の物語。 自らのルーツを探すように、サルーが20年以上前のおぼろげな記憶とGoogle Earthをつき合わせていく中で、次第に明かされていく、彼の巻き込まれた運命の数奇さ、スラム街で幾多の危険をくぐり抜けてきた少年の知恵と生命力、そして深い愛に包まれていた彼の本当の人生―。 主人公のサルーには、『スラムドッグ$ミリオネア』のデヴ・パテル。彼の養母役に、本作でも多くの賞にノミネートされているオスカー女優のニコール・キッドマン、恋人役に『キャロル』でアカデミー賞®にノミネートされたルーニー・マーラ。 壮大な“探し物”の果てに、彼が見つけたものとは?自らの手で奇跡を引き寄せた男の、圧巻の感動ドラマ。

5歳の時の迷子から母との再会までを集中して描いている印象がある。 なので、義父母や恋人の言動はあまり語れていない。 自分は腑に落ちないところがいくつかあった。 だけど実話からの話となると、ある程度そういうものなかなとも思う。

最後は想定通りなのだけど、ひとつ隠していることがあり、そこが少しニクかった。