Code
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import statsmodels.formula.api as smf2026/05/07
2026/04/17
回帰分析を実行する前に、まず散布図で変数間の関係を目で確認する。外れ値の有無や非線形な関係がないかをチェックするためのステップ。
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 26842 (\N{CJK UNIFIED IDEOGRAPH-68DA}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 21368 (\N{CJK UNIFIED IDEOGRAPH-5378}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 36039 (\N{CJK UNIFIED IDEOGRAPH-8CC7}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 29987 (\N{CJK UNIFIED IDEOGRAPH-7523}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 22770 (\N{CJK UNIFIED IDEOGRAPH-58F2}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 19978 (\N{CJK UNIFIED IDEOGRAPH-4E0A}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 21407 (\N{CJK UNIFIED IDEOGRAPH-539F}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 20385 (\N{CJK UNIFIED IDEOGRAPH-4FA1}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 26989 (\N{CJK UNIFIED IDEOGRAPH-696D}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 30028 (\N{CJK UNIFIED IDEOGRAPH-754C}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 12489 (\N{KATAKANA LETTER DO}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 12521 (\N{KATAKANA LETTER RA}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 12483 (\N{KATAKANA LETTER SMALL TU}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 12464 (\N{KATAKANA LETTER GU}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 12473 (\N{KATAKANA LETTER SU}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 12488 (\N{KATAKANA LETTER TO}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 12450 (\N{KATAKANA LETTER A}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 23478 (\N{CJK UNIFIED IDEOGRAPH-5BB6}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 38651 (\N{CJK UNIFIED IDEOGRAPH-96FB}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 26842 (\N{CJK UNIFIED IDEOGRAPH-68DA}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 21368 (\N{CJK UNIFIED IDEOGRAPH-5378}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 36039 (\N{CJK UNIFIED IDEOGRAPH-8CC7}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 29987 (\N{CJK UNIFIED IDEOGRAPH-7523}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 22770 (\N{CJK UNIFIED IDEOGRAPH-58F2}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 19978 (\N{CJK UNIFIED IDEOGRAPH-4E0A}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 21407 (\N{CJK UNIFIED IDEOGRAPH-539F}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 20385 (\N{CJK UNIFIED IDEOGRAPH-4FA1}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 26989 (\N{CJK UNIFIED IDEOGRAPH-696D}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 30028 (\N{CJK UNIFIED IDEOGRAPH-754C}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 12489 (\N{KATAKANA LETTER DO}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 12521 (\N{KATAKANA LETTER RA}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 12483 (\N{KATAKANA LETTER SMALL TU}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 12464 (\N{KATAKANA LETTER GU}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 12473 (\N{KATAKANA LETTER SU}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 12488 (\N{KATAKANA LETTER TO}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 12450 (\N{KATAKANA LETTER A}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 23478 (\N{CJK UNIFIED IDEOGRAPH-5BB6}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 38651 (\N{CJK UNIFIED IDEOGRAPH-96FB}) missing from font(s) DejaVu Sans.
外れ値(飛び抜けて大きな値)があると、そこに引っ張られて回帰直線が大きく歪んでしまう。99パーセンタイルを超える値を上限として除去することで、外れ値の影響を取り除く。
まず99パーセンタイルの値を確認する。
確認した閾値を使って外れ値を除去する。
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 26842 (\N{CJK UNIFIED IDEOGRAPH-68DA}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 21368 (\N{CJK UNIFIED IDEOGRAPH-5378}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 36039 (\N{CJK UNIFIED IDEOGRAPH-8CC7}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 29987 (\N{CJK UNIFIED IDEOGRAPH-7523}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 22770 (\N{CJK UNIFIED IDEOGRAPH-58F2}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 19978 (\N{CJK UNIFIED IDEOGRAPH-4E0A}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 21407 (\N{CJK UNIFIED IDEOGRAPH-539F}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 20385 (\N{CJK UNIFIED IDEOGRAPH-4FA1}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 26989 (\N{CJK UNIFIED IDEOGRAPH-696D}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 30028 (\N{CJK UNIFIED IDEOGRAPH-754C}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 12489 (\N{KATAKANA LETTER DO}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 12521 (\N{KATAKANA LETTER RA}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 12483 (\N{KATAKANA LETTER SMALL TU}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 12464 (\N{KATAKANA LETTER GU}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 12473 (\N{KATAKANA LETTER SU}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 12488 (\N{KATAKANA LETTER TO}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 12450 (\N{KATAKANA LETTER A}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 23478 (\N{CJK UNIFIED IDEOGRAPH-5BB6}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/events.py:82: UserWarning:
Glyph 38651 (\N{CJK UNIFIED IDEOGRAPH-96FB}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 26842 (\N{CJK UNIFIED IDEOGRAPH-68DA}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 21368 (\N{CJK UNIFIED IDEOGRAPH-5378}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 36039 (\N{CJK UNIFIED IDEOGRAPH-8CC7}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 29987 (\N{CJK UNIFIED IDEOGRAPH-7523}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 22770 (\N{CJK UNIFIED IDEOGRAPH-58F2}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 19978 (\N{CJK UNIFIED IDEOGRAPH-4E0A}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 21407 (\N{CJK UNIFIED IDEOGRAPH-539F}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 20385 (\N{CJK UNIFIED IDEOGRAPH-4FA1}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 26989 (\N{CJK UNIFIED IDEOGRAPH-696D}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 30028 (\N{CJK UNIFIED IDEOGRAPH-754C}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 12489 (\N{KATAKANA LETTER DO}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 12521 (\N{KATAKANA LETTER RA}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 12483 (\N{KATAKANA LETTER SMALL TU}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 12464 (\N{KATAKANA LETTER GU}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 12473 (\N{KATAKANA LETTER SU}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 12488 (\N{KATAKANA LETTER TO}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 12450 (\N{KATAKANA LETTER A}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 23478 (\N{CJK UNIFIED IDEOGRAPH-5BB6}) missing from font(s) DejaVu Sans.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning:
Glyph 38651 (\N{CJK UNIFIED IDEOGRAPH-96FB}) missing from font(s) DejaVu Sans.
最小二乗法(OLS: Ordinary Least Squares)で回帰直線を推定する。「棚卸資産が1単位増えたとき、売上原価がどれだけ変わるか」という関係を数値で表す。
smf.ols('目的変数 ~ 説明変数', data=df) という形で式を書く。
OLS Regression Results
==============================================================================
Dep. Variable: 売上原価 R-squared: 0.685
Model: OLS Adj. R-squared: 0.664
Method: Least Squares F-statistic: 32.58
Date: Fri, 17 Apr 2026 Prob (F-statistic): 4.15e-05
Time: 04:56:15 Log-Likelihood: -216.20
No. Observations: 17 AIC: 436.4
Df Residuals: 15 BIC: 438.1
Df Model: 1
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
Intercept 1.364e+05 4.28e+04 3.187 0.006 4.52e+04 2.28e+05
棚卸資産 3.5234 0.617 5.708 0.000 2.208 4.839
==============================================================================
Omnibus: 0.740 Durbin-Watson: 1.675
Prob(Omnibus): 0.691 Jarque-Bera (JB): 0.671
Skew: -0.151 Prob(JB): 0.715
Kurtosis: 2.075 Cond. No. 1.43e+05
==============================================================================
Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
[2] The condition number is large, 1.43e+05. This might indicate that there are
strong multicollinearity or other numerical problems.
| 項目 | 見る場所 | 意味 |
|---|---|---|
| 係数 | 棚卸資産 の行の coef |
棚卸資産が1増えると売上原価がこの数値だけ変わる |
| p値 | P>|t| |
0.05以下なら統計的に有意 |
| 決定係数 | R-squared |
モデルがデータをどれだけうまく説明できているか(0〜1) |
全業界を一緒に分析するより、同業界内で比較するほうが異質性をコントロールできる。業界によって事業モデルが違うため、業界を固定すると係数の解釈がより明確になる。
OLS Regression Results
==============================================================================
Dep. Variable: 売上原価 R-squared: 0.789
Model: OLS Adj. R-squared: 0.763
Method: Least Squares F-statistic: 29.92
Date: Fri, 17 Apr 2026 Prob (F-statistic): 0.000595
Time: 04:56:15 Log-Likelihood: -122.31
No. Observations: 10 AIC: 248.6
Df Residuals: 8 BIC: 249.2
Df Model: 1
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
Intercept 1.305e+05 4.32e+04 3.022 0.017 3.09e+04 2.3e+05
棚卸資産 4.2223 0.772 5.470 0.001 2.442 6.003
==============================================================================
Omnibus: 3.431 Durbin-Watson: 2.428
Prob(Omnibus): 0.180 Jarque-Bera (JB): 1.576
Skew: 0.972 Prob(JB): 0.455
Kurtosis: 2.916 Cond. No. 1.38e+05
==============================================================================
Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
[2] The condition number is large, 1.38e+05. This might indicate that there are
strong multicollinearity or other numerical problems.
OLS Regression Results
==============================================================================
Dep. Variable: 売上原価 R-squared: 0.739
Model: OLS Adj. R-squared: 0.687
Method: Least Squares F-statistic: 14.16
Date: Fri, 17 Apr 2026 Prob (F-statistic): 0.0131
Time: 04:56:15 Log-Likelihood: -90.051
No. Observations: 7 AIC: 184.1
Df Residuals: 5 BIC: 184.0
Df Model: 1
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
Intercept 7.389e+04 8.56e+04 0.863 0.428 -1.46e+05 2.94e+05
棚卸資産 3.7929 1.008 3.762 0.013 1.201 6.384
==============================================================================
Omnibus: nan Durbin-Watson: 1.012
Prob(Omnibus): nan Jarque-Bera (JB): 0.916
Skew: 0.665 Prob(JB): 0.632
Kurtosis: 1.828 Cond. No. 1.74e+05
==============================================================================
Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
[2] The condition number is large, 1.74e+05. This might indicate that there are
strong multicollinearity or other numerical problems.
/Users/msy/.pyenv/versions/3.13.7/lib/python3.13/site-packages/statsmodels/stats/stattools.py:74: ValueWarning:
omni_normtest is not valid with less than 8 observations; 7 samples were given.
全体と業界別で係数や決定係数がどう変わるか比較してみよう。