やかんです。
今日は2月7日とかその辺に試験がある統計について勉強していこうと思います。
単回帰分析とは。
簡単な説明しかできませんが、ざっくりと以下2ステップで説明できるんじゃないかなって思ってます。
統計は特にどこまでいっても「さらに詳しい説明」が存在する気がする。
- なんらかの推定によって回帰係数を推定する(最小2乗推定量など)
- 回帰係数の推定量(標本回帰係数)の妥当性をいろんな仕方で検討する
最小2乗法とかの説明は端折ります。求め方は結構きれいですが、「これ初見じゃ無理じゃね?」というのが僕の感想です。まあ、きれいだからいいんですけど。
早速Rを使っていく。
回帰分析含め、データ分析の勉強をしようとした際にはまずデータセットが必要となります。
これが最初のハードルだったりする。
でも、ご安心ください(?)。Rがサンプルのデータセットをデフォルトで提供してくれています。
iris
↑これを拡張子Rのファイルに書いて、お馴染みの⌘ + Enter
とかで実行するとアヤメデータが読み込まれます。”iris”はアヤメのことだそうです。
「アヤメって何?」という教養のない僕がいますが、まあ今回は触れないで次に進みます。
単回帰分析はこれだけでいい!
前提として、単回帰分析においては説明変数と独立変数の2つの変数が登場するので、データ分析にあたってはまず「何を説明変数にして何を独立変数にするか」を決めることから始まります。多分。
正確な情報は専門家に聞いてください。
で、今回はiris(アヤメデータ)のうち、がく片の幅(Sepal.Width)を説明変数に、がく片の長さ(Sepal.Length)を独立変数にとります。「長さを幅で説明する」って感じです。この変数の取り方が適切かどうかっていうのは論点ありますが、まあ今回は学習目的なので。
お待ちかね、単回帰分析のコード全体がこちら。
sepal_length <- iris$Sepal.Length # がく片の長さ
sepal_width <- iris$Sepal.Width # がく片の幅
model <- lm(sepal_length ~ sepal_width, data = iris) # 回帰モデルの作成(単回帰分析)
summary(model) # 回帰モデルの概要を表示(計算結果の出力)
短い!
そうなんです。たったの4行で単回帰分析ができてしまいます。まあ、普通はこんな丁寧に書かないで以下のように2行くらいで書くのかな。
model <- lm(Sepal.Length ~ Sepal.Width, data = iris)
summary(model)
ええ、、Rくん優秀すぎだろ。。
Rの出力を読んでいく。
summary(model)
の出力がこちら。
Call:
lm(formula = sepal_length ~ sepal_width, data = iris)
Residuals:
Min 1Q Median 3Q Max
-1.5561 -0.6333 -0.1120 0.5579 2.2226
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6.5262 0.4789 13.63 <2e-16 ***
sepal_width -0.2234 0.1551 -1.44 0.152
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.8251 on 148 degrees of freedom
Multiple R-squared: 0.01382, Adjusted R-squared: 0.007159
F-statistic: 2.074 on 1 and 148 DF, p-value: 0.1519
急にゴツいですね。
単回帰分析をすること自体はRを使ってしまえば簡単ですが、Rが計算してくれた計算結果の意味を汲み取るのが大変です。色々理解してないといけないですからね。
がんばります。
今回は、最小2乗推定量と決定係数を読んでいこうと思います。
まず、最小2乗推定量はCoefficients
という項目のEstimate
になります(↓太字のところ)。
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6.5262 0.4789 13.63 <2e-16 ***
sepal_width -0.2234 0.1551 -1.44 0.152
Coefficients
は係数。
「係数の見積もり」みたいな感じですね。まさに、最小2乗推定量のことを指しています。
Intercept
は切片のことなので、説明変数である「がく片の幅」の係数は出力によると-0.2234らしいです。
よって、
がく片の長さ(独立変数) = 6.5262 + (-0.2234) * がく片の幅(従属変数)
ということになります。
最小2乗推定量は、導出自体は大変ですが公式に当てはめてしまえば割と簡単に求められたりします。でも、Rを使うとちょっとビビるくらい簡単に求まります。
すごい
では次に決定係数。
決定係数は、その概念自体がちょっと難しい気がしますね。理解のためには、最低限の回帰分析に対する慣れが必要なのではないでしょうか。
平たく言えば「求めた回帰係数の推定量(最小2乗推定量など)が、どれくらい理想的な回帰係数に近いか」を表しているのが決定係数なはず。
ちょっと平すぎるのでもうちょっと正確に言うと、「標本回帰方程式(標本回帰係数を用いた回帰方程式のこと)が、実際のモデルにどの程度当てはまっているか」を表しているのが、決定係数と言えます。
絶対的な自信はないので、間違い等あったら訂正お願いします。
決定係数の計算方法は省略しますが、その値が0に近ければ求めた標本回帰方程式はポンコツで、1に近ければ優秀という値になります。
この決定係数は出力におけるR-squared
の値です(↓太字のところ)。
Multiple R-squared: 0.01382, Adjusted R-squared: 0.007159
読み方としては、「この単回帰モデルにおいて、説明変数は独立変数を1.38%、説明している」となります。比較的1.38%という値は、決定係数としては小さい値だそうです。
と、単回帰分析についてRを使って部分的に見てみました。僕としてはいい勉強になったかなと思っております。引き続き勉強を進めます。
ということで、今回の記事は以上になります。最後までお読みいただき、ありがとうございます。