---
# System prepended metadata

title: Week    04    課後練習
tags: [layout-note, 量化資料分析-北大]

---

---
title: Week04 課後練習
tags: 量化資料分析-北大,layout-note
---
{%hackmd @hackmd/blog-article-base-layout %}

<div style="text-align: center">

<h1>Week    04    課後練習</h1>

</div>


<div class="author-info flex justify-start items-top">
    <img src="https://i.imgur.com/vDqcCq3.png" class="img-circle" height="50">
    <div>
        <b><a href="https://hackmd.io/@tree10zi23">請給我畢業證書</a></b>
        <br> 
        <p style="margin-left: em">量化資料課程第四週課後練習。這次的範圍是第一到六題<br>找時間把 r 語言的寫法補上來（前提是作業寫完＋有時間之後）。</p>
    </div>
</div>

## 目錄
:::spoiler
[TOC]
:::

### 問題一

:::info
自尊與憂鬱特質研究
- [ ] 樣本：25 低自尊兒童
- [ ] 樣本平均憂鬱 M = 93.3
- [ ] 母體平均憂鬱：μ = 90
- [ ] 母體標準差：σ = 15
- [ ] 請問低自尊兒童比較憂鬱嗎？請以 P 值 < 0.05 做==單尾檢定==
- [ ] 請設定假設，計算 Z test，討論結果
:::


:::spoiler
```r
> # 樣本數 (num_sample) = 25 
> # 樣本平均數 (mean_sample) = 93.3
> # 母體平均數 (mean_popular) = 90
> # 母體標準差 (SD_popular) = 15
> # 本題要問本次抽樣的樣本平均數，是否與母體平均數存在差異？
> # 並進行假設檢定，在 P-value < 0.05 的信心水準下進行單尾檢定
> # -------------
> # 建立變數
> 
> num_sample = 25 #樣本數
> mean_sample = 93.3 #樣本平均數
> mean_popular = 90 #母體平均數
> SD_popular = 15 #母體標準差
> 
> # 計算此次抽樣的抽樣誤差 (SEM)
> sem = SD_popular/(num_sample^(1/2))
> print(sem)
[1] 3
> 
> # 計算樣本的 Z 值 (z_score_sample)
> z_score_sample = (mean_sample - mean_popular)/sem
> print(z_score_sample)
[1] 1.1
> 
> # 計算此 Z 值的 P 值 (p_val)
> p_val = 1 - pnorm(z_score_sample)
> print(p_val)
[1] 0.1356661
> # 檢測 P 值是否有小於臨界值 0.05
> p_val <= 0.05
[1] FALSE
> print(p_val <= 0.05)
[1] FALSE
> 
> # 無法拒絕虛無假設，換言之，在此次的抽樣，得到 93.3 或更大的可能性大於 0.05 (p_val 的數值為 0.1356)；這個機率太大，無法判斷得到這樣的結果「不是抽樣誤差造成」，所以「無法拒絕虛無假設」。
```
:::

### 問題二
:::info
請使用 2011 年社會變遷健康組調查資料（`2011health_w3.dta`），回答以下問題：
- [ ] 請以樣本來推估台灣女性分別在 18 - 34, 35 - 60, 60 歲以上的平均體重，請問平均與 95% 信賴區間。
- [ ] 體重： `weight`、年齡： `age`、性別：`gender`（`1` = 男性、`2`= 女性）
- [ ] 請以文字描述結果
:::
:::spoiler
```c=
/* ========== 問題二 ==========
 * Q5-1
 * 年齡變數：age
 * 1 18-34
 * 2 35-60
 * 3 60 up
 * 體重變數：weight
 * 只要女性（重點），先把男性的資料過濾掉，再進行分類和分析
 * 如何把「男性」資料全部刪除？
 * 首先，請記得建立備份（以免污染到原始資料，萬劫不復）、或者可以使用 [preserve] 指令，開啟暫存模式進行運作，在分析結束後，再以 [restore] 回復原本資料的狀態。
 * 
 * 條件判斷式：if [某條件] [條件判斷] ...
 * 舉例來說，我想要將所有男性 [移除] ，則需進行如下操作：
     * drop if gender == 1 →如果 [gender] 這一項的數值等於 1 ，則刪除 [drop]
     * 其中，[==] 是等同於的意思，與 [=] 的意思不一樣。
 * */
 
preserve 
drop if gender2 == 1
tab gender2
recode age (18/34 = 1 "18-34 歲之間") (35/60 = 2 "35-60 歲之間")(60/93 = 3 "60 歲以上"), gen(age_3class)
label variable age_3class "年齡分層"
bysort age_3class: sum weight, de
restore

```
:::

### 問題三
:::info
請使用 2011 年社會變遷健康組調查資料（`2011health_w3.dta`），回答以下問題：
- [ ] 常做運動有助於 BMI 的降低嗎？請比較常做運動與不常做運動的人，他們的 BMI 是否不同？
    - [ ] 請先根據次數分與平均數等，針對運動與 BMI 進行描述，再擬定研究假設、檢測假設，並討論結果。
- [ ] 運動：`sport` （`1` = 一星期運動數次以上， `0` = 以下）；
:::
:::spoiler
```c=
tab d2
tab sport
sum bmi, de
ttest bmi, by(sport)

/* 重新調整運動變數
 * 首先，我要計算的是，幾乎沒運動跟有在運動的差別
 * */

/*我不要這個變數*/
drop sport             
recode d2 (1=1 "從不運動") (2/5 = 2 "有在運動") (6/99=.),gen(sport_bool)
label variable sport_bool "是否運動"
tab sport_bool
bysort sport_bool: sum bmi
ttest bmi, by(sport_bool)

/* 得到的結果很合理，從沒運動跟有在運動（無論頻率）的人，BMI 的差異是顯著的（p-value 為 0.0223）
 * 接下來，我想要了解，運動頻率的影響，如果我把運動次數太少的都歸類為「不常運動」，我想看看「不常運動」跟「常運動」的差異？
 * */
 
drop sport_bool
recode d2 (1/2 = 1 "很少運動（一個月少於一次）") (2/5 = 2 "經常運動") (6/99=.), gen(sport_month)
label variable sport_month "每月是否經常運動"
tab sport_month
bysort sport_month: sum bmi
ttest bmi, by(sport_month)

/* 可以看出來，若將資料分為「一個月運動是否少於一次」時，兩者在 BMI 上的差異就並未達到顯著；換言之，此次抽樣得到的結果（每月很少運動與經常運動的差距）無法判斷是不是「抽樣誤差」造成的（p-value = 0.6484），因此無法拒絕虛無假設。
 * */
 
/* 最後，回到本題以「一星期」的運動次數來進行區分 
 * */
drop sport_month
recode d2 (1/3 = 1 "很少運動（一星期少於一次）") (4/5 = 2 "經常運動") (6/99 = .),gen(sport_week)
label variable sport_week "每星期是否經常運動"
tab sport_week
bysort sport_week: sum bmi
ttest bmi, by(sport_week)
/* 可以看出來，若將資料分為「每週運動是否少於一次」時，兩者在 BMI 上的差異就並未達到顯著；換言之，此次抽樣得到的結果（每週很少運動與經常運動的差距）無法判斷是不是「抽樣誤差」造成的（p-value = 0.6437），因此無法拒絕虛無假設。
 * */

```
:::
### 問題四
:::info
請使用 2011 年社會變遷健康組調查資料（`2011health_w3.dta`），回答以下問題：
請問台灣 25 - 55 歲男性與女性於 2011 年的平均每月工作收入？比較台灣男性與女性，誰的工作收入比較高？請寫出**虛無假設與研究假設**，並討論結果。
- [ ] 個人月收入：`r_mwage`（單位：萬元）；性別：`gender`（`1` = 男性、`2`= 女性）
:::
:::spoiler
```c=
preserve
keep if (age >= 25 & age <= 55)
bysort gender: sum r_mwage
ttest r_mwage, by(gender)
ttest r_mwage, by(gender) welch
ttest r_mwage, by(gender) unequal
restore
/* 虛無假設（H0）：假定 25 至 55 歲的男性與女性，其每月工作收入相等，不存在差異。
 * 研究假設（Ha）：假定 25 至 55 歲的男性與女性，其每月工作收入會有差異。
 * 
 * 在「虛無假設」是正確無誤的情況下，此次的抽樣結果中，男女在每月收入存在差異的可能性小於 0.05（p-value ~= 0.000），這樣的可能性過低，我們認為「虛無假設」存在錯誤。因此，我們可以拒絕虛無假設，換言之，男性與女性的每月工作收入之間確實存在差異。*/
```
:::
- t test中的 `welch` 參數的意義[^welch]



[^welch]: 參考資料：
 *How to Perform Welch’s t-test in Stata*
。 https://www.statology.org/welchs-t-test-stata/

### 問題五
:::info
請使用 2011 年社會變遷健康組調查資料（`2011health_w3.dta`），回答以下問題：
- [ ] 比較台灣男性與女性自覺的能動性，誰的自覺能動性比較高？請先描述單一變項（g2）的次數分配，寫出==虛無假設==與==研究假設==，並討論結果。
- [ ] 自覺自己控制生活的自由度：`autonomy`（1--10）
- [ ] 原始問題（`g2`）：有些人能完全選擇和控制自己的生活，有些則無能為力，您選擇和控制生活的自由度如何？
:::
:::spoiler
```c=
tab g2, nol
tab gender
preserve
drop  if g2 >=11
drop autonomy
recode g2 (11/99=.) ,gen(autonomy)
label variable autonomy "自覺能動性（1-10）"
sum autonomy
bysort gender: sum autonomy
ttest autonomy,by(gender)
restore
/* 虛無假設（H0）：假定男性與女性的自覺能動性沒有差異
 * 研究假設（Ha）：認為男性與女性的自覺能動性有差異
 * 
 * 在「虛無假設」是正確無誤的情況下，此次的抽樣結果底下，男女在自覺能動性存在差異的可能性小於 0.05（p-value=0.0313），這樣的可能性過低，我們認為「虛無假設」存在錯誤。因此，我們可以拒絕虛無假設，換言之，男性與女性之間的自覺能動性可能存在差異。*/
```
:::

### 問題六
:::info
請使用 `hsb2.dta` 調查資料，回答以下問題：
- [ ] 美國某國小的三年級學生進行期中考，請檢測他們**數學**與**科學成績**表現是否有差異？
- [ ] 請寫出**虛無假設**與**研究假設**，並討論結果
- [ ] 數學成績：`math`；科學成績：`science`
:::
:::spoiler
```c=
ttest math = science
/* 虛無假設（H0）：假定學生在數學成績和科學成績表現上沒有差異。
 * 研究假設（Ha）：認為學生在數學成績和科學成績表現上會有差異。
 * 
 * 在「虛無假設」是正確無誤的情況下，此次的抽樣結果中，數學與科學成績存在差異的可能性大於 0.05（p-value=0.1768），這樣的可能性尚未達到我們拒絕虛無假設的門檻；換言之，我們無法確定得到這樣的結果是不是因為「抽樣誤差」造成的。因此我們無法拒絕「虛無假設」，換言之，我們無法確認學生在數學成績和科學成績的表現中存在差異。*/
```
:::

### 問題七
:::warning
請使用 2011 年社會變遷健康組調查資料（`2011health_w3.dta`），回答以下問題：
- [ ] 在台灣，族群間存在許多差異與不平等，請問族群背景會影響他們的教育年數嗎？
- [ ] 使用 `oneway, tab`
- [ ] 自變項：`pethnic` （`1` = Taiwanese, `2` = Hakka, `3` = Mainlander, `4` = Other, `.` = missing）
- [ ] 依變項：教育年數：`eduyear`
- [ ] 請設定==假設、解釋結果==
:::
```c=
oneway eduyear pethnic, tab
/* 虛無假設（H0）：
 * 研究假設（Ha）：
 * 
 * 在「虛無假設」是正確無誤的情況下，此次的抽樣結果中，.............可能性 ....... 0.05（p-value=......），這樣的可能性..................。*/
```


### 問題八
:::warning
請使用 2011 年社會變遷健康組調查資料（`2011health_w3.dta`），回答以下問題：
- [ ] 在台灣，族群間存在許多差異與不平等，請問族群背景會影響他們的工作收入嗎？
- [ ] 自變項：`pethnic` （`1` = Taiwanese, `2` = Hakka, `3` = Mainlander, `4` = Other, `.` = missing）
- [ ] 依變項：每月工作收入（單位：萬）：`r_mwage`
:::
```c=
oneway r_mwage pethnic, tab
/* 虛無假設（H0）：
 * 研究假設（Ha）：
 * 
 * 在「虛無假設」是正確無誤的情況下，此次的抽樣結果中，.............可能性 ....... 0.05（p-value=......），這樣的可能性..................。*/
```



### Week04 作業範圍

:::spoiler
```c=
log using "Quan-week04-test.txt", replace
use "2011health_w3.dta"
/* ========== 問題二 ==========
 * 年齡變數：age
 * 1 18-34
 * 2 35-60
 * 3 60 up
 * 體重變數：weight
 * 只要女性（重點），先把男性的資料過濾掉，再進行分類和分析
 * 如何把「男性」資料全部刪除？
 * 首先，請記得建立備份（以免污染到原始資料，萬劫不復）、或者可以使用 [preserve] 指令，開啟暫存模式進行運作，在分析結束後，再以 [restore] 回復原本資料的狀態。
 * 
 * 條件判斷式：if [某條件] [條件判斷] ...
 * 舉例來說，我想要將所有男性 [移除] ，則需進行如下操作：
     * drop if gender == 1 →如果 [gender] 這一項的數值等於 1 ，則刪除 [drop]
     * 其中，[==] 是等同於的意思，與 [=] 的意思不一樣。
 * */
 
preserve 
drop if gender2 == 1
tab gender2
recode age (18/34 = 1 "18-34 歲之間") (35/60 = 2 "35-60 歲之間")(60/93 = 3 "60 歲以上"), gen(age_3class)
label variable age_3class "年齡分層"
bysort age_3class: sum weight, de
restore

/* ========== 問題三 ==========
 * 重新調整運動變數
 * 首先，我要計算的是，幾乎沒運動跟有在運動的差別
 * */

preserve

/*我不要這個變數*/
drop sport             
recode d2 (1=1 "從不運動") (2/5 = 2 "有在運動") (6/99=.),gen(sport_bool)
label variable sport_bool "是否運動"
tab sport_bool
bysort sport_bool: sum bmi
ttest bmi, by(sport_bool)

/* 得到的結果很合理，從沒運動跟有在運動（無論頻率）的人，BMI 的差異是顯著的（p-value 為 0.0223）
 * 接下來，我想要了解，運動頻率的影響，如果我把運動次數太少的都歸類為「不常運動」，我想看看「不常運動」跟「常運動」的差異？
 * */
 
drop sport_bool
recode d2 (1/2 = 1 "很少運動（一個月少於一次）") (2/5 = 2 "經常運動") (6/99=.), gen(sport_month)
label variable sport_month "每月是否經常運動"
tab sport_month
bysort sport_month: sum bmi
ttest bmi, by(sport_month)

/* 可以看出來，若將資料分為「一個月運動是否少於一次」時，兩者在 BMI 上的差異就並未達到顯著；換言之，此次抽樣得到的結果（每月很少運動與經常運動的差距）無法判斷是不是「抽樣誤差」造成的（p-value = 0.6484），因此無法拒絕虛無假設。
 * */
 
/* 最後，回到本題以「一星期」的運動次數來進行區分 
 * */
drop sport_month
recode d2 (1/3 = 1 "很少運動（一星期少於一次）") (4/5 = 2 "經常運動") (6/99 = .),gen(sport_week)
label variable sport_week "每星期是否經常運動"
tab sport_week
bysort sport_week: sum bmi
ttest bmi, by(sport_week)

restore
/* 虛無假設（H0）：每週運動數次和每週運動少於一次的人，在 BMI 上沒有差異
 * 研究假設（Ha）：每週運動數次和每週運動少於一次的人，在 BMI 上有差異。
 * 
 * 在「虛無假設」是正確無誤的情況下，此次的抽樣結果中，每週運動少於一次和多於一次的人們在 BMI 上的差異並未達到 0.05 的顯著水準（p-value = 0.6437），換言之，我們無法確認得到此次的結果是不是因為抽樣誤差造成的；因此我們無法拒絕虛無假設，換言之我們無法宣稱「每週運動數次相較於少於一次的人」在 BMI 上有差異。
 * */



/* ========== 問題四 ========== */

preserve
keep if (age >= 25 & age <= 55)
bysort gender: sum r_mwage
ttest r_mwage, by(gender)
ttest r_mwage, by(gender) welch
ttest r_mwage, by(gender) unequal
restore

/* 虛無假設（H0）：假定 25 至 55 歲的男性與女性，其每月工作收入相等，不存在差異。
 * 研究假設（Ha）：假定 25 至 55 歲的男性與女性，其每月工作收入會有差異。
 * 
 * 在「虛無假設」是正確無誤的情況下，此次的抽樣結果中，男女在每月收入存在差異的可能性小於 0.05（p-value ~= 0.000），這樣的可能性過低，我們認為「虛無假設」存在錯誤。因此，我們可以拒絕虛無假設，換言之，男性與女性的每月工作收入之間確實存在差異。*/



/* ========== 問題五 ========== */
tab g2, nol
tab gender
preserve
drop  if g2 >=11
drop autonomy
recode g2 (11/99=.) ,gen(autonomy)
label variable autonomy "自覺能動性（1-10）"
sum autonomy
bysort gender: sum autonomy
ttest autonomy,by(gender)
restore
/* 虛無假設（H0）：假定男性與女性的自覺能動性沒有差異
 * 研究假設（Ha）：認為男性與女性的自覺能動性有差異
 * 
 * 在「虛無假設」是正確無誤的情況下，此次的抽樣結果底下，男女在自覺能動性存在差異的可能性小於 0.05（p-value=0.0313），這樣的可能性過低，我們認為「虛無假設」存在錯誤。因此，我們可以拒絕虛無假設，換言之，男性與女性之間的自覺能動性可能存在差異。*/

/* ========== 問題六 ========== */
clear
use "hsb2.dta"
ttest math = science
/* 虛無假設（H0）：假定學生在數學成績和科學成績表現上沒有差異。
 * 研究假設（Ha）：認為學生在數學成績和科學成績表現上會有差異。
 * 
 * 在「虛無假設」是正確無誤的情況下，此次的抽樣結果中，數學與科學成績存在差異的可能性大於 0.05（p-value=0.1768），這樣的可能性尚未達到我們拒絕虛無假設的門檻；換言之，我們無法確定得到這樣的結果是不是因為「抽樣誤差」造成的。因此我們無法拒絕「虛無假設」，換言之，我們無法確認學生在數學成績和科學成績的表現中存在差異。*/
log close

```

:::






### More Refeneces
