7 研究デザインと出版用テーブル

Author
Affiliation

𠮷田政之

近畿大学経営学部

Published

2026/05/21

Modified

2026/04/17

1 必要なパッケージを読み込む

Code
!pip install stargazer
Code
import pandas as pd
import statsmodels.formula.api as smf
from stargazer.stargazer import Stargazer
import IPython

2 データを準備する

Code
df = pd.read_csv("drive/MyDrive/自分で作ったフォルダの名前/findata.csv", encoding="cp932")
df_ind = pd.read_csv("drive/MyDrive/自分で作ったフォルダの名前/inddata.csv", encoding="cp932")
Code
df2 = pd.merge(df, df_ind, on=["銘柄コード", "会社名"])
df2["営業利益"] = df2["売上高"] - df2["売上原価"] - df2["販管費"]
df2["roa"] = df2["営業利益"] / df2["総資産"]
df2["売上高利益率"] = df2["営業利益"] / df2["売上高"]
df2["総資産回転率"] = df2["売上高"] / df2["総資産"]

df2_clean = df2.loc[
    (df2["棚卸資産"] <= df2["棚卸資産"].quantile(0.99)) &
    (df2["売上原価"] <= df2["売上原価"].quantile(0.99))
]

3 代理変数(プロキシ変数)

分析で使いたい概念が直接データとして存在しない場合がある。たとえば「経営者の能力」や「ブランド力」は数字で測れない。そこで、その概念と相関が高い別の変数(代理変数)を代わりに使う。

測りたい概念 代理変数の例
経営能力 ROA(資産をどれだけ効率よく使えているか)
企業の規模感 売上高、総資産
成長性 売上高の前年比

代理変数はあくまで「近似」なので、その限界を意識しながら使うことが重要。

4 リビーボックス(研究デザインの整理)

分析を始める前に、変数の関係を図で整理することで「何を推定しているか」が明確になる。

リビーボックスとは、以下の3種類の変数を並べたフレームワーク:

[独立変数 X]  →  [従属変数 Y]
                    ↑
             [コントロール変数 Z]
変数の種類 役割
従属変数(Y) 説明したい結果 売上原価
独立変数(X) 関心がある要因 棚卸資産
コントロール変数(Z) 取り除きたい交絡 売上高(企業規模)

分析を始める前にリビーボックスを書くことで、「どの変数をモデルに含めるべきか」「何を主張できるか」が整理される。

5 出版用テーブル(stargazer)

学術論文では複数のモデルを横に並べた係数表を掲載するのが慣習。モデル(1)は基本モデル、モデル(2)以降でコントロール変数を追加するという構成が多い。

stargazer を使うと、複数モデルを自動で整形した表を生成できる。

Code
md1 = smf.ols('売上原価 ~ 棚卸資産', data=df2_clean).fit()
md2 = smf.ols('売上原価 ~ 棚卸資産 + 売上高', data=df2_clean).fit()

stargazer = Stargazer([md1, md2])
stargazer.show_confidence_intervals(True)
IPython.display.HTML(stargazer.render_html())
Dependent variable: 売上原価
(1)(2)
Intercept136448.211***10055.778
(45180.446 , 227715.977)(-10882.869 , 30994.426)
売上高0.759***
(0.682 , 0.836)
棚卸資産3.523***-0.369
(2.208 , 4.839)(-0.830 , 0.093)
Observations1717
R20.6850.990
Adjusted R20.6640.989
Residual Std. Error85922.924 (df=15)15491.847 (df=14)
F Statistic32.579*** (df=1; 15)724.805*** (df=2; 14)
Note:*p<0.1; **p<0.05; ***p<0.01

モデル(1)からモデル(2)に移ったとき、棚卸資産 の係数がどう変わるかを確認する。係数が大きく変わる場合、売上高 が交絡変数として機能していたことを意味する。