UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#113 PHPで、統計分析の単回帰分析を使って年齢から年収を予測

記入日:2023-05-01 編集日:2023-05-01

PHPで、統計分析の単回帰分析を使って、年齢から年収を予測してみようと思います。

この記事を読むと(約5分)
PHPで、統計分析の単回帰分析を使って、年齢から年収を予測する方法がイメージできます。

PHPで、統計分析の単回帰分析を使って、年齢から年収を予測

単回帰分析は、一つの説明変数が目的変数に与える影響を調べるための統計分析手法です。

以下のコードでは、5つのデータ点が与えられており、それぞれのデータ点は、年齢(説明変数)と年収(目的変数)のペアで構成されており、説明変数$x$が43の場合の目的変数$y$を予測しています。予測値は、回帰係数と切片の値を用いて計算され、echo文で表示されます。

// データセット(xは説明変数、yは目的変数)
$data = array(
    array(23, 450),
    array(26, 500),
    array(30, 550),
    array(34, 600),
    array(43, 750)
);

// 説明変数と目的変数を分離
$x = array();
$y = array();
foreach ($data as $d) {
    $x[] = $d[0];
    $y[] = $d[1];
}

// 平均値を計算
$mean_x = array_sum($x) / count($x);
$mean_y = array_sum($y) / count($y);

// 偏差の計算
$s_x = 0;
$s_y = 0;
for ($i = 0; $i < count($x); $i++) {
    $s_x += pow($x[$i] - $mean_x, 2);
    $s_y += pow($y[$i] - $mean_y, 2);
}

// 相関係数と回帰係数の計算
$r = 0;
$b = 0;
for ($i = 0; $i < count($x); $i++) {
    $r += ($x[$i] - $mean_x) * ($y[$i] - $mean_y);
    $b += pow($x[$i] - $mean_x, 2);
}
$r /= sqrt($s_x * $s_y);
$b /= $s_x;
$a = $mean_y - $b * $mean_x;

// 予測値の計算
$x_new = 43;
$y_pred = $a + $b * $x_new;
echo $y_pred;

最初に、データセットから説明変数と目的変数を分離します。次に、説明変数と目的変数の平均値を計算し、それを用いて、偏差と相関係数を計算します。

偏差とは、データ点が平均値からどの程度ずれているかを表す指標であり、相関係数は、説明変数と目的変数の間にどの程度の強さで相関があるかを表す指標です。

そして、偏差と相関係数を用いて、回帰係数を計算します。回帰係数は、説明変数と目的変数の関係を表す線形回帰式の傾きを表す指標です。この傾きを用いて、説明変数から目的変数を予測することができます。

最後に、新しい説明変数の値を与えて、目的変数を予測します。このコードでは、説明変数$x$が43の場合の目的変数$y$を予測しています。予測値は、回帰係数と切片の値を用いて計算され、echo文で表示されます。


このコードは、与えられたデータセットから、単回帰分析を行い、新しいデータ点に対する予測値を計算するためのものです。このような分析は、経済学やマーケティング分野など、さまざまな分野で応用されます。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。