【統計学】⑨ 回帰分析とは何かを分かりやすく解説する 

 

回帰分析とは?

今回は統計学の基本要素である回帰分析についてみていきます。私もそうだったのですが、データ分析を勉強し始めた人が皆ぶつかる壁が、「分析ってなんやねん」という疑問です。

漫画とかでは、テニプリの乾みたいなキャラが分析分析と簡単に言いますが、リアルでデータを集めてこれをいざ分析となると何をしたらいいんだってなります。同じように、最近テレビとかでもビッグデータや分析力という言葉が頻繁に使われるようになりましたが、データサイエンスの観点でデータを見る目的は、「獲得したデータを分析し、いかに将来を予測するか」です。

獲得するデータには、マーケティング目的であれば、アンケートデータ・購買データ・WEBの閲覧データetc…株価予測であれば財務情報・株価データなどがあります。

まあどのようなデータにしても、「そのデータを分析することでデータの特徴をよく知り、将来の動きを予測することによって、有用な知見を得ることが目的なのです。

データの特徴を知る方法というのはこれまで紹介してきた平均・分散といった基本統計量やグラフ化というのがあります。

【統計学】平均・中央値・最頻値について ~基本統計量 その1

【統計学】分散と標準偏差について~基本統計量その2

そして、データの予測の具体的な方法というのが、今回のテーマである回帰分析となります。この回帰分析はデータ分析による予測の超基本であり、大きく「単回帰分析」「重回帰分析」に分類されます。

今回は1つの変数でもう1つの変数の動きを予測する、「単回帰分析」について説明していきます。(具体例でいうと、身長から体重を予測するなど)

単回帰分析とは?

単回帰分析というのは、2つ変数の関係性をY=aX+bという一次方程式の形で表す分析です。つまり、a(傾き)とb(Y切片)がわかれば、XからYの数値を予測することができるわけで、このaとbを求める分析といえます。(ちなみにこのaとbは回帰係数といいます。)

そして、このaとbはどのようにして求めるのかというと、「最小二乗法」という誤差の二乗の和を最小にする方法を用います。この方法は「単回帰分析」だけではなく、「重回帰分析」においても用いられます。

最小二乗法による回帰係数の求め方

「最小二乗法」による回帰係数の計算はエクセルでやれば、向こうが勝手に計算してくれるのですが、一応でのような計算が行われているのか見ていきます。

f:id:oruka199665:20170309214646p:plain

(参照:http://xica.net/8v6t1phd/)

それぞれの変数の平均値を求める


それぞれの変数の偏差(数値 - 平均値)を求める


変数 x の分散(偏差の二乗平均)を求める


共分散(偏差の積の平均)を求める


共分散を変数 x の分散で割って回帰直線の傾きを得る


2 つの変数の平均値と傾きから、回帰直線の y 切片を得る

ちなみにエクセルでは回帰分析を行うと、傾き (slope)と切片( intercept )に加えて決定係数R²(rsq )と相関係数 (correl) も計算してくれます。

相関係数と決定係数 

相関係数と決定係数はが、どれくらい信憑性があるのかをあらわす数値です。ちなみに相関係数については下の記事で解説しています。

【統計学】 共分散と相関係数の簡単な説明

まあ要するに、2つの変数の数値の変化にどれくらい相関があるのかを、-1~1の範囲であらわしたもので、相関係数の絶対値が大きいほど相関関係があるということになります。

そして、決定係数というのは、決定係数とは回帰モデル(計算によって求められたaとbの値)によって変数(データ)をどれくらい説明できているか、つまり回帰分析の精度を表す指標です。

決定係数は基本的に0から1の範囲で表され、 1 に近いほど 残差変動が小さい、つまりよい回帰モデルであるとみなすことができます。ちなみに計算上はひどいモデルであれば決定係数をマイナスになりえます。

決定係数は一般的に R²で表され、相関係数の2乗の値となります。基本的に回帰分析をした際にモデルの決定係数R²が0.5以上あれば、そのモデルは有効であるといえます。

追記:統計学の初歩的学習にはコチラのマンガでわかる統計学入門という本が分かりやすかったので紹介しておきます。

プログラミングの独学はとても難しい


プログラミングは小学校の義務教育にも導入され始めており、これから社会人として生きていく上でプログラミングはもはや出来て当たり前、出来なれば論外というエクセルレベルの必須スキルになりつつあります。そしてそういう話を聞いて参考書なりを購入して独学でプログラミング勉強しようと思っている人も少なくないでしょう。しかしプログラミングを独学で勉強し始めようと思うものの



・「分からない箇所で詰まって挫折してしまった」

・「勉強する時間が足りない」

・「ネットの記事だと情報が断片的でよくわからない」

・「コードのエラーの原因が分からない」



という壁にぶち当たって、プログラミングの勉強を止めてしまう方が少なくありません。独学でプログラミングを勉強してる時間のほとんどはつまづいている時間です。実際僕も最初のころ独学でプログラミングを勉強していた頃はエラーの原因が分からず丸1日を不意にしてしまった・・・そんな苦い経験がありました。



それで僕は一度はプログラミングの学習を諦めてしまいましたが、就活で現実を知る中で「プログラミングを勉強して、いずれフリーランスとして自由な生き方がしたい」「エンジニアとして若いうちから高収入を得たい」という気持ちから一念発起して「侍エンジニアのwebサービスコース」に申し込み、プロのエンジニアの方に対面でマンツーマンでPythonによるWebサービス作り方とWeb技術の基本を教えてもらい、ようやくプログラミングが理解でき、今ではエンジニアとしてそこそこの暮らしができるようになりました。





侍エンジニアでは、とりあえずプログラミングやインターネットの基本を知っておきたい人から、HTML・cssなどでWebサイトやWebアプリを作ってみたい人やPythonを勉強してデータサイエンティストやAIエンジニアになりたい人まで幅広いニーズに応えた様々なコースが用意されています。



IT業界と言ってもエンジニアの仕事はプログラミング言語次第でサーバーから機械学習・ディープラーニングまで多種多様ですし、侍エンジニアの無料レッスン(カウンセリング)を受けてみて、自分のやりたいITの仕事は何なのか?を見つけるのがエンジニアへの第一歩になります。ちなみに今侍エンジニアの無料レッスンを受けると1000円分のAmazonギフト券がもらえるので、試しに受けてみるだけもお得です。


自分は半端に独学やオンラインスクールで勉強して金と時間を無駄にするくらいなら、リアルのプログラミングスクールに通ってしっかりプログラミングを勉強した方がいいと思います。ちなみに今、侍エンジニアに申し込むと、25歳以下の学生の方であれば、受講料が20%OFFになるので超お得です。


そして、プログラミングは大勢で授業を受けたり漫然とオンライン学習をするよりも自分が分からない箇所をピンポイントでプロの講師に直接質問して、ちゃんと納得するというスタイルの方がお金は確かに少し掛かりますが、独学で学ぶよりも絶対にモノになります。


シェアする

  • このエントリーをはてなブックマークに追加

フォローする

   侍エンジニア塾       
侍エンジニアの無料体験レッスンを予約する -->