回帰分析#
単回帰モデル#
ある変数
(誤差は正負バランスよく出現する) (予測変数の値が大きくても小さくても誤差は大きくなったり小さくなったりする傾向はない)
パラメータの推定には最尤法や最小二乗法やモーメント法などが使われる
モーメント法による単回帰モデルの推定#
単回帰モデルの両辺の期待値をとると
となる。
次に、単回帰モデルの両辺に
分散は
であり、
であり、2変数だと
であることを利用すると
推定では標本の統計量を用いて
とする。
import semopy
import numpy as np
import pandas as pd
# 適当なデータを生成
n = 1000
np.random.seed(0)
x = np.random.uniform(size=n)
e = np.random.normal(size=n)
y = 10 + 3 * x + e
data = pd.DataFrame(dict(y=y, x=x))
# モデルを構築
desc = "y ~ x"
model = semopy.Model(desc)
model.fit(data)
model.inspect()
lval | op | rval | Estimate | Std. Err | z-value | p-value | |
---|---|---|---|---|---|---|---|
0 | y | ~ | x | 2.903337 | 0.105092 | 27.626547 | 0.0 |
1 | y | ~~ | y | 0.932673 | 0.041710 | 22.360680 | 0.0 |
# パス図
semopy.semplot(model, filename="/tmp/path_diagram.png")