単回帰分析偏  

使ったソフトは__R__と__python__です。
参考にしたサイトは
[Rで線形単回帰分析 - matsuou1の日記](https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&ved=0ahUKEwjM_7qVn7jKAhVH2qYKHQcLB2cQFghCMAY&url=http%3A%2F%2Fd.hatena.ne.jp%2Fmatsuou1%2F20110418%2F1303144024&usg=AFQjCNHVhvF5-vExQgCy5TogRVZ4uWw4yA)


次のデータは７人の女性の年齢と血圧を示すものである。

| 被験者 | 年齢ｘ | 血圧y |
|:----- |------:|:----:|
| 1     |    37 | 112  |
| 2     |    45 | 132  |
| 3     |    48 | 120  |
| 4     |    55 | 154  |
| 5     |    58 | 136  |
| 6     |    67 | 162  |
| 7     |    75 | 164  |

##(1)年齢ｘと血圧ｙの散布図を描け

<img width="515" alt="plot.png" src="https://qiita-image-store.s3.amazonaws.com/0/57916/4fcdae9e-1138-d779-ce1b-c57a5e84c02f.png">

##(2)xとyの相関係数を求めよ

```math
r = \frac {\frac {1} {n}\sum_{i=1}^n (x_1- \overline{x})(y_1 - \overline{y})} {\sqrt{ \frac {1} {n} \sum_{i=1}^n (x_i - \overline{x})^2} \sqrt{ \frac {1} {n} \sum_{i=1}^n (y_i - \overline{y})^2}}
```

なので

```math
\overline{x} = \frac {37 + 45 + 48 + 55 + 58 + 67 + 75} {7} = 55
```

```math
\overline{y} = \frac {112 + 132 + 120 +154 + 136 +162 + 164} {7} = 140
```

よって

```math
r = \frac {1456} {\sqrt{1026 \times 2520}} = 0.9054978515
```

Rを使ってスピアマンの相関係数を求める。

```r
> cor(年齢x, 血圧y, method="spearman")
[1] 0.9054979
```

##(3)単回帰モデルを仮定し、回帰直線を求めよ。

５ページの数式

```math
\hat{\beta_1} = \frac {\sum_{i=1}^n x_i y_i - n \overline{x}\overline{y}} {\sum_{i=1}^n x_i^2 - n\overline{x}^2}
```

```math
\hat{\beta_0} = \overline{y} - \hat{\beta_1}\overline{x}
```

を使い、回帰直線を求める。

```math
\hat{\beta_1} = \frac {55356 - 53900} {22201 - 21175} = \frac {1456} {1026} = 1.41910
```

```math
\hat{\beta_0} = 140 - 1.4191 \times 55 = 61.9495
```

よって求める回帰直線は

```math
y = 61.9495 + 1.4191x
```

##(4)各点における予想値と残差を求めよ

予測値と残差の求め方は、例えば３７歳の場合。

```math
\hat{y_1} = 61.9495 + 1.4191 \times 37 = 114.4562
```

```math
e_1 = 112 - 114.4562 = -2.45619
```

同様にして求めると

| 被験者 | 年齢ｘ | 血圧y | 予測値 | 誤差 |
|:----- |------:|-----:|-----:|:----:|
| 1     |    37 | 112  |114.4562|-2.45619|
| 2     |    45 | 132  |125.809|6.19100|
| 3     |    48 | 120  |130.0663|-10.0663|
| 4     |    55 | 154  |140.0|14.0|
| 5     |    58 | 136  |144.2573|-8.25729|
| 6     |    67 | 162  |157.0292|4.97079|
| 7     |    75 | 164  |168.382|-4.38200|

私の場合はpythonのラムダ式を使って計算してみた。

```py3
>>> f = lambda x: 61.9495 + 1.4191*x
>>> f(37)
114.4562
>>> f(45)
125.809
```

##(5)回帰直線を用いて、年齢が40歳、５０歳、６０歳の女性の血圧を予測せよ

先ほど使ったpythonのラムダ式を使って求める。

```py
>>> f(40)
118.71350000000001
>>> f(50)
132.90449999999998
>>> f(60)
147.09550000000002
```
##余談

Rを使って単回帰分析をしてみた。
予測値についてもRで計算可能だが、やり方を忘れてしまった。汗

```r

> summary(lm(血圧y ~ 年齢x))

Call:
lm(formula = 血圧y ~ 年齢x)

Residuals:
      1       2       3       4       5       6       7
 -2.456   6.191 -10.066  14.000  -8.257   4.971  -4.382

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)  61.9493    16.7496   3.699  0.01402 *
年齢x         1.4191     0.2974   4.771  0.00501 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 9.527 on 5 degrees of freedom
Multiple R-squared:  0.8199,	Adjusted R-squared:  0.7839
F-statistic: 22.77 on 1 and 5 DF,  p-value: 0.005009
```

- 残差についてpythonで計算した結果と一致
- 回帰式についてもCoefficientsの左側部分(Estimate下)を見ると一致
- 回帰式の係数について

```math
y =  \hat{\beta_0} + \hat{\beta_1}x
```

とした時

```math
\hat{\beta_1} = 0
```

となった場合

```math
y =  \hat{\beta_0}
```

となり、xはyに影響を与えないことになってしまう。
それでは回帰分析が成立しないので

```math
\hat{\beta_1} = 0
```

を帰無仮説とし、このことを棄却できるかどうか考える。

この結果を示した部分が__t value__と__pr(>|t|)__の部分である。両方とも見るとそれぞれ有意水準５％でt検定した場合、帰無仮説を棄却することができた。

- 自由度修正済み決定係数__Adjusted R-squared__を見ると 0.7839　なので大体１に近いので説明できていると思う。