成員: 圖資四 謝沅瑾、圖資四 賴樁霖、公衛三 蔡哲維、公衛三 張震奕
根據衛服部調查,國人的十大死因中,心臟疾病就位居第二,而世界衛生組織(WTO),曾指出心血管疾病是造成全球死亡的頭號犯人,但若提高警覺維持好的健康生活型態、避免擁有心臟疾病的相關因子,便可提高預防心臟相關疾病的可能性。因此,我們想透過統計分析,推測有哪些行為、習慣或是生物特徵會被歸為最主要的疾病因子。
Personal Key Indicators of Heart Disease
資料是來自於美國於1984年建立的行為風險因素監測系統(BRFSS)其中的一部分,此系統會以電話調查的方式、重新更新民眾的健康相關指數,每年完成超過四十萬次的訪談,成為世界上最大、仍在更新的健康調查系統。數據包含2020年至2022年2月中旬以來的數據,在經過此份資料的提供者清理後,僅被保留資料提供者認為最相關的變量,將原始資料擁有的三百個變量,縮減成十八個變項,共有319,765筆資料。
| 變項名稱 | 數值型態、意義 | 變項名稱 | 數值型態、意義 |
|---|---|---|---|
| HeartDisease | Boolean;是否曾有過heart disease (CHD) 或 myocardial infarction (MI) | AgeCategory | String;十八至八十歲、每五年為一個區段之年齡類別當中,屬於何者 |
| BMI | Decimal;BMI為多少 | Race | String;種族為何 |
| Smoking | Boolean;此生目前吸至少一百根菸 | Diabetic | String;是否曾有過糖尿病 |
| AlcoholDrinking | Boolean;男性一周十四瓶,女性一週至少七瓶 | PhysicalActivity | Boolean;過去一個月是否有除了工作以外的身體活動 |
| Stroke | Boolean;是否曾有過中風 | GeneralHealth | String;會怎麼定義自己的健康狀態 |
| PhysicalHealth | Integer;過去一個月以來,有幾天生理上感到不適或受傷 | SleepTime | Integer;平均而言一天會睡幾小時 |
| MentalHealth | Integer;過去一個月以來,有幾天心理上感到不適或受傷 | Asthma | Boolean;是否曾有過哮喘 |
| Diffwalking | Boolean;是否在行走或爬樓梯時有困難 | KidneyDisease | Boolean;是否曾有過腎結石、膀胱感染;尿失禁以外的腎臟疾病 |
| Sex | String;是男性或女性 | SkinCancer | Boolean;是否曾有過皮膚癌 |

探索性資料分析是在做資料分析前不可或缺的步驟,其主要目的是透過視覺化與簡單的統計方法來讓我們了解資料的特性,包括了分布、異常值、缺失、各個類別所佔的比例等資訊,除此之外,這些資訊也可以幫助我們後續分析、建模等等的工作。就我們這筆資料而言,BMI是一個需特別注意的變項,因為它理論上會有一個合理的範圍值存在,如果在分析過程中就已經發現了不合常理的outlier,則在這步驟就應該先將其清理掉,才不會影響到後續資料分析的結果。
補充(Data Cleaning):
可能的篩outlier方法(BMI、SleepTime):

畫圖觀察資料分布

1.5倍IQR
np.quantile(df['SleepTime'].dropna(), q= 0.75) + (np.quantile(df['SleepTime'].dropna(), q= 0.75) - np.quantile(df['SleepTime'].dropna(),q = 0.25))*1.5
# 11.0 hour
np.quantile(df['BMI'].dropna(), q= 0.75) + (np.quantile(df['BMI'].dropna(), q= 0.75) - np.quantile(df['BMI'].dropna(),q = 0.25))*1.5
#42.505
查文獻看合理的範圍值
合併、拆分年齡區間(e.g., 70-74, 75-79, 80up → 70up)
Logistic Regression: