---
# System prepended metadata

title: 'goodness of fit, standardized coefficients, model selection'
tags: [Categorical data analysis]

---

# goodness of fit, standardized coefficients, model selection
###### tags: `Categorical data analysis`
## Saturated model
在類別裡 $n$--effective sample size代表的是類別數，而在回歸裡因為是連續變數，所以不大可能有相同的組合數，因此effective sample size就是sample size。
當 $p$--(參數數量)與樣本數相同時，稱此模型為 <b>saturated model</b>，通常這個model都是最complicated的，往往會overfit

## Deviance
定義為

:::success
<font size = 4>
    
    
  $D = -2ln\frac{ML \;\; for \;\; model}{ML \;\; for \;\; satureated \;\; model} = -2[L_M - L_S] = 2[L_S - L_M]$
    
</font>
:::
可以看到 Deviance 代表著簡化 model 跟 saturated model log likelihood 的差值
因為 $L_S$ 會是一個定值，因此Deviance越大，表示 $L_M$ 越小，$L_M$ 越小代表該model配適的程度越差

## Test of goodness of fit of model
:::success
<font size = 5.5>
    
$H_0:$ use model $M_0$
$H_a:$ use saturated model

Test statstic: $-2[M_M - M_S] = 2[M_S - M_M] \rightarrow \chi_{n - m}^2$ 

其中 n 為 saturated model 用的 parameter 數量，m 為 model $M_0$ 用的參數數量
</font>
:::

當 test statistic 越大，代表model $M_0$ 的 likelihood 跟 saturated model 相差越遠，代表 $M_0$ 的 fit 效果越差。而

:::success
<font size = 5.5>
    
 $E[\frac{2[M_S - M_M]}{n - m}] = \frac{1}{n-m} E[2(M_S - M_M)] = \frac{1}{n-m} E(\chi^2_{n-m}) = 1$  
    
</font>
:::

因此可以用 test statistic / df 來檢視該 model 是否合適，越接近1代表配適程度越好

![](https://i.imgur.com/XYx3KvQ.jpg)

第一個是 Deviance residual，也就是 $2[M_S - M_M]$
第二個是 Pearson residual，其定義為
![](https://i.imgur.com/1Bh3CIM.png =60%x)





## Quasi-likelihood
在資料的變異上做了些微調整來解決overdispersion的問題，不影響模型參數的估計值

## Test for overdispersion

:::success
<font size = 5.5>
    
 $H_0: \phi = 1$   
 $H_a: \phi \neq 1$
    
    
</font>
:::

use Pearson-type statistic to test

也可以藉由 Pearson residual 跟 Deviance residual 的檢定來看，因為基本上在 logistic model 中，一個模型的配適度好不好只受到 $\mu$ 跟 $Var(x)$ 的影響。

### SAS code
以下使用這個資料: litter是母老鼠編號、group是給了老鼠不同的diet、n是母老鼠生出了幾隻老鼠、y是有幾隻老鼠死掉
![](https://i.imgur.com/1UdH4ea.jpg)

``` sas=
proc logistic data = class10;
class group (ref = first) / param = ref;
model y / n = group / scale = none;
run;
```
---
Adjustment
``` sas=
proc logistic data = class10;
class group (ref = first) / param = ref;
model y / n = group / scale = p;
run;
```


### SAS intepretation



![](https://i.imgur.com/catXdPt.jpg)

這個結果是在檢定該解釋變數是否全顯著，因為 group 這個變數有4類，所以旨在檢定
$H_0: \beta_1 = \beta_2 = \beta_3 = 0$，可以拿來跟下面的表格中的檢定結果對比是否一致。

![](https://i.imgur.com/cVBRvpj.jpg)

---
Adjustment

![](https://i.imgur.com/8WlOL35.jpg)

做了pearson的overdispersion調整之後，deviance residual、pearson residual跟 $\beta$ 係數的估計值並不會改變。但 $\beta$ 係數的 standard error會變大，導致其檢定結果變得較不顯著

## Standardized coefficient
當x的單位不同的時候，會影響到 $\beta$ 的數值大小，如果 x 的單位越大， $\beta$ 的估計值就會越小，因此 not standardized 的 $\beta$ 不能互相比較。但是當 x standardized 之後， $\beta$ 便可以互相比較

### SAS code

``` sas=
proc logistic data = class10;
class group (ref = first) / param = ref;
model y / n = group / stb;
run;
```

### SAS intepretation

![](https://i.imgur.com/LH0Y4ii.jpg =60%x)

可以看到 standardized 之後的結果，當然在這邊因為 explanetory variable 是類別型的 group 所以 standardized 也沒啥意義就是了。

## Model selection

<b>SLE(selection level for entry)</b>: 當 explanetory varaible 的p-value < SLE 時就認定他是 important 的，便把這個變數選進來
<b>SLS(selection level for stay)</b>: 當 explanetory varaible 的p-value > SLS 時就認定他是 trivial 的，便把這個變數剔除
model selection有三種方法，首先先將所有待選的explanetory variable Wald test的p-value由小到大排列
1. Forward
由小到大，當 $X_i$的p-value $p_i < SLE$，便將他加進 model 裡
2. Backward(通常用這個)
先把所有explanetory variable加進variable裡，接著由大到小，當 $X_j$的p-value $p_j > SLS$時便將他移除
3. Forward and backward
由小到大，當$X_i$的p-value < $SLE$，便將他加進 model 裡，接著再check是否有 $X_i$ 的 p-value > $SLS$，因為當每新加進一個變數時，該變數就有可能與前面的變數產生共線性的問題，導致其p-value改變

### SAS code
``` sas=
proc logistic data = <data>;
model <response> = <explanetory> / selection = backward sls = 0.05;
run;

```



