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