---
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