pandasでのboolとmissing valueの取り扱い
TL;DR¶
- pandasではmissin valueを含むboolean型はobject型になってしまう
- pandas.assignやpandas.joinなどでいつの間にかobject型になっているので注意!
- object型をbool型にキャストすると、bool(np.nan)==True なので注意!
bool(np.nan)==True¶
np.nanとの比較は常にFalseとなる.
操作変数法
線形回帰分析による因果推論
上記のモデルを考える。 ここで、YとXの関係の真のモデルは、Cがすべて既知であれば
$$
Y = \alpha + \beta X + \gamma C + \epsilon
$$
ここで、εは誤差、α、β、γは回帰係数。βがYに対するXの影響を示す求めたい回帰係数となる。 しかし交絡Cが入手できない状況では、Cを除いた単純な回帰を行うとバイアスがかかってしまう
$$
Y = \alpha_u + \beta_u X + \epsilon
$$
この単回帰の係数\(\beta_u\)は公式から
$$
\beta_u = \frac …
more ...
Jupyterでgraphvizを使ったグラフの表示
import graphviz as gv
import tempfile, os
from IPython.display import Image
def view_dot(dot_text):
with tempfile.TemporaryDirectory() as dname:
filename = os.path.join(dname, "test")
src = gv.Source(dot_text …
pandas idiom: rename_axis().reset_index().set_index()
pandasの列は、indexとcolumnからなる。これを入れ替えるには、rename_axis().reset_index().set_index()をつかう。
plotnine example
pythonのグラフライブラリといえば、matplotlib, seabornが有名です.
私見では、seabornはmatplotlibの補完的な機能を中心に設計されていて、かつインターフェースが (ggplotなどに慣れてしまうと) 一貫性がなくて APIマニュアルとにらめっこが大変。
まあなれればたいしたことないのかもしれないけど、pythonでもRでも同じようにグラフをかきたいという人には、ggplotのpython移植であるplotnineがおすすめ。
データ分析環境 R+python
- 統計解析については R >> Python
- その他についてはPython >> R言語
- Jupyter notebook で PythonとRを組み合わせて使うスタイルがおすすめ
R | Python | |
---|---|---|
環境 | RStudio, jupyter | jupyter, etc |
データ整形 | dplyr(tidyverse) | pandas |
統計 | いろいろ | scipy.stats, statsmodels |
グラフ | ggplot2 | seaborn, plotnine(ggplot-like … |