回帰分析とは

回帰分析とは 関係のある2つの変数があるとき、一方の数値が与えられたときに他方の数値を予測する分析方法

相関係数 は単純に2つの変数の関連性を数値的に示すものだが、回帰分析では 2つの変数の関係性を方程式 で表すので予測値が簡単に計算できるメリットがある。

方程式
Y = Xa + b

Y は目的変数 と呼ばれ、いわゆる予測したい変数のこと。 いっぽう X は Y を説明する変数ということで説明変数 と呼ばれる。

回帰分析では a と b について知ることができる。

ナンバーズの予想に使うには

関係のありそうな変数を定義して回帰分析を行うことで、次回の抽せん数字を予想することができる。

回帰分析の例

まずは関係のありそうな2つの変数を定義(想定)してみる。

  • 予測したい変数(目的変数): 月曜日の抽せん数字 100の位
  • 関係のありそうな変数(説明変数): 金曜日の抽せん数字 100の位

「100の位の数字について、金曜日の抽せん数字と月曜日の抽せん数字に関係がある」と仮説を立てて、月曜日の抽せん数字について回帰分析を行う。

抽せん回号第3001回から第4170回の抽せん数字から、金曜日の抽せん数字と月曜日の抽せん数字を抽出して分析する。

p100 = df.loc[3001:4170, ['dayofweek', 'place100']]
p100_mon = p100[p100['dayofweek'] == '月'] # 目的変数
p100_fri = p100[p100['dayofweek'] == '金'] # 説明変数

# ここから回帰分析
# y: 目的変数、x: 説明変数
scipy.stats.linregress(x=p100_fri.place100, y=p100_mon.place100)

# LinregressResult(slope=-0.017201566917084386, intercept=4.465256918410434, rvalue=-0.016997022200981666, pvalue=0.7959201237410788, stderr=0.0664336987032186)
# LinregressResult の内容
# slope=-0.017201566917084386
# intercept=4.465256918410434
# rvalue=-0.016997022200981666
# pvalue=0.7959201237410788

LinregressResult の内容で slope は a に対応し、 intercept は b に対応する。

  • a = -0.017201566917084386
  • b = 4.465256918410434
Y = Xa + b
[月曜日の数字] = [金曜日の数字] x a + b

金曜日の数字が「8」だとしたら:

Y = 8 * -0.017201566917084386 + 4.465256918410434
# Y = 4.327644383073759

月曜日の予想数字は「4」となる。


最終更新日: 2020年01月12日(日)


目次

プロローグ

統計解析

データマイニング

資料集

Back to top