【統計検定2級】Rの回帰分析出力結果の見方について

2015年ごろから見かけるようになったRでの出力結果の意味を答えさせる問題、今回はその解き方というかRの回帰分析の結果の意味を説明していきます。

まずはRで回帰分析

まずはRで回帰分析を行ってみます。Rで統計検定2級の問題に出てくるような出力結果を表示させる関数は.summary

y <- c(1,8,4,6,5,9,13,24,31)
x <- c(10,20,10,40,50,30,50,20,70)

ans <- lm(y~x)

s.ans <- summary(ans)
s.ans

<実行結果>

f:id:oruka199665:20190606150645p:plain

結果の解説

lm(fomula=y~x)でモデルは単回帰であり、生成した結果はy=b+axという形であることが分かります。

そして、CoefficientsのEstimateの部分がモデルの係数になります。(intercept)がモデルのβの数値にあたります。そしてxはxの係数になるαの数値になります。なので、今回の回帰分析の推定結果はy=0.235x+0.596 だったということが分かります。

そして次のstd_errorはモデルの係数の標準誤差になります。標準誤差が大きいとモデルは正確性が怪しいということを意味しています。

次のt_valueは『t値』です。t値とはt検定での仮説の棄却に使用される検定量で回帰係数(Estimate)を標準誤差(std_error)で割って算出されます。(例:interceptのt_valueは0.59÷2.6≒0.229)。一般的に分析において基本的に母分散は未知なので、t検定を使用します。『t検定の自由度は、「標本数ー変数の個数」で今回の分析ではサンプル数が9で変数がαとβの2つなので、自由度9-2=7』のt検定になっています、

今回のt検定の帰無仮説は『回帰係数が0(説明変数は目的変数に影響を与えない)』です。(これは自動で設定されます)。この帰無仮説が正しかった場合のt値が、それぞれ0.229と3.049ということを示しています。

最後のpr(>|t|)は上のt値をp値に置き換えたものです。今回の分析では「α(β)の回帰係数が0である」という帰無仮説が正しい場合のp値は0.0186(0.8254)だよ、という意味になります。

なので、αの方はp値が0.01と非常に小さく、この結果はα=0の場合この事象起こる確率は0.018%だよ、という意味なので、有意水準5%での検定の場合にはαの回帰係数は0ではないという対立仮説→α=0.23を採用することができます。

この場合t値も<0の正の値であるため、有意に正であるということができます。t値がー、負の値である場合は言えません。

反対にβはp値が0.82と非常に大きいため帰無仮説を棄却することができないため、この値は信頼性は低いということを意味しています。

項目 意味
Estimate その回帰分析による、回帰係数の推定値(推定値の実現値)。
Multiple R-squared 決定係数R^2であり、単回帰分析の場合は、xとyの相関係数の2乗がこれを表している。
Pr(>|t|) p値。回帰係数が0(説明変数は目的変数に影響を与えない)であるという帰無仮説に対する仮設検定結果のp値。
Residual standard error 誤差項の標準偏差の推定値。
std.Error 各回帰係数の推定量の標準誤差。
t value t値。回帰係数=0(説明変数は目的変数に影響を与えない)であるという帰無仮説に対するt検定によって計算される値。

参考:https://to-kei.net/r-beginner/r-3/

まとめ

とりあえずこれくらい分かれば統計検定2級のRの分析問題でボロボロになることはないと思われます。統計検定でありがちなデータ分析にRもたまに使うことがないとは言いませんが、よっぽどマニアックな分析でもない限りデータ分析は基本Pythonでいいでしょう。

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


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



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

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

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

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



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



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





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



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


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


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


シェアする

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

フォローする