---
# System prepended metadata

title: 5️⃣機器學習 - R平方(R Squared)
tags: [python, machine learning]

---

###### tags: `machine learning`|`python`

# 機器學習 - R平方(R Squared)
:::info
可參考[機器學習 - 多元線性回歸(Multiple Linear Regression)](/UjgVc0TeSNWljn9j7tdmEQ)
:::
## 介紹
* 方程式：$R^2=1-\cfrac{SS_{res}}{SS_{tot}}$
* $R^2$大代表模型是理想的
* $R^2$落在0~1之間
> * 自變量不論是否改變，都不會影響<font color=indigo>總平方和$SS_{tot}$</font>，故分母不變
> * 斜直線落在哪，會改變$y_{\hat{i}}$，即改變<font color=purple>殘差平方和$SS_{res}$</font>，故分子會改變
> 若$SS_{res}$小（斜線上$y_{\hat{i}}$和所有點$y_{i}$差距小），$SS_{tot}$不變，$R^2$大
> 若$SS_{res}$大（斜線上$y_{\hat{i}}$和所有點$y_{i}$差距大$\rightarrow$不理想），$SS_{tot}$不變，$R^2$小

![](https://i.imgur.com/BTmucDv.png)
![](https://i.imgur.com/Ds79HpF.png)

---


## 調整R平方(Adjusted R Squared)
### 前言
![](https://i.imgur.com/ElKyH4P.png)
> 原因：
> 假設應變量$y$為薪水，自變量$x_1$為工作年資、$x_2$為證照數
> $x_2$是合適的自變量，可解釋應變量與自變量的關係，殘差平方和$SS_{res}$會變小，$R^2$變大
> 假設$x_3$為身分證第一碼，與應變量沒任何關係，$b_3=0$，殘差平方和$SS_{res}$不變，$R^2$不變
### 介紹
![](https://i.imgur.com/DIGlnIQ.png)

* 為了解決自變量不斷盲目增加，使$SS_{res}$不斷變小，$R^2$不斷變大的情況
* 方程式：$Adj\ R^2=1-(1-R^2)\times\cfrac{n-1}{n-p-1}$
    > p：number of regressors 自變量個數
    > n：sample size 資料個數
> * 自變量變多不一定是好的
> 若$p$變大，其他參數不變，$Adj\ R^2$變小
> * 看$(1-R^2)$與$\cfrac{n-1}{n-p-1}$
> 若$p$變大能使$SS_{res}$變更小，$R^2$變大，$(1-R^2)$變小，$\cfrac{n-1}{n-p-1}$變大
> $(1-R^2)$與$\cfrac{n-1}{n-p-1}$互相拉扯
:::success
結論：
1. 自變量個數增加，若能使$R^2$上升幅度足夠【影響$(1-R^2)$】，則$Adj\ R^2$變大
2. 自變量個數增加，若$R^2$上升幅度不足夠，則$Adj\ R^2$變小
:::
