pandasでのboolとmissing valueの取り扱い

Date

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となる.


操作変数法

Date

線形回帰分析による因果推論

XYC digraph

上記のモデルを考える。 ここで、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を使ったグラフの表示

Date
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 …
more ...


plotnine example

Date

pythonのグラフライブラリといえば、matplotlib, seabornが有名です.

私見では、seabornはmatplotlibの補完的な機能を中心に設計されていて、かつインターフェースが (ggplotなどに慣れてしまうと) 一貫性がなくて APIマニュアルとにらめっこが大変。

まあなれればたいしたことないのかもしれないけど、pythonでもRでも同じようにグラフをかきたいという人には、ggplotのpython移植であるplotnineがおすすめ。


データ分析環境 R+python

Date
  • 統計解析については 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 …
more ...