ipynb - Colaboratory
Overview Dataset
"Data Sensus Penghasilan". Data ini diambil dari database biro Sensus 1994 oleh Ronny Kohavi
dan Barry Becker (Data Mining and Visualization, Silicon Graphics).
age
sex
race
education
marital-status
workclass
occupation
relationship
native-country
hours-per-week
capital-loss
capital-gain
fnlwgt
Pengambilan Data
Univariate analysis
Bivariate analysis
1. Pengambilan Data:
https://colab.research.google.com/drive/1l6wHsFUbgXDAY8ne5-VDkICE6pe5Cs-b?hl=id#scrollTo=SqaE4Z2K3Wl6&printMode=true 1/11
3/17/22, 8:48 AM Syiffa Putri Meillani.ipynb - Colaboratory
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
import warnings
warnings.filterwarnings("ignore")
from scipy.stats import ttest_ind, ttest_rel
from scipy import stats
data = pd.read_csv("https://gitlab.com/andreass.bayu/file-directory/-/raw/main/adult.csv")
data.head(10)
2. EDA
https://colab.research.google.com/drive/1l6wHsFUbgXDAY8ne5-VDkICE6pe5Cs-b?hl=id#scrollTo=SqaE4Z2K3Wl6&printMode=true 2/11
3/17/22, 8:48 AM Syiffa Putri Meillani.ipynb - Colaboratory
2.1.Univariate analysis
2.1.1 Age
[ ] ↳ 4 sel tersembunyi
2.1.2 Income
i. Distribusi
plt.figure(figsize=(7,7))
total = float(len(data) )
ax = sns.countplot(x="income", data=data)
for p in ax.patches:
height = p.get_height()
ax.text(p.get_x()+p.get_width()/2.,
height + 3,
'{:1.2f}'.format((height/total)*100),
ha="center")
plt.show()
https://colab.research.google.com/drive/1l6wHsFUbgXDAY8ne5-VDkICE6pe5Cs-b?hl=id#scrollTo=SqaE4Z2K3Wl6&printMode=true 3/11
3/17/22, 8:48 AM Syiffa Putri Meillani.ipynb - Colaboratory
ii. Deskripsi
Distribusi di atas menjelaskan bahwa :
Dataset ini tidak seimbang, yaitu 23,93% di antaranya termasuk dalam kelompok
pendapatan 1 (yang berpenghasilan lebih dari \$50K) dan 76% termasuk dalam kelompok
pendapatan 0 (yang berpenghasilan kurang dari \$50K).
2.2.Bivariate analysis
i. Boxplot
fig = plt.figure(figsize=(10,10))
sns.boxplot(x="income", y="age", data=data)
plt.show()
https://colab.research.google.com/drive/1l6wHsFUbgXDAY8ne5-VDkICE6pe5Cs-b?hl=id#scrollTo=SqaE4Z2K3Wl6&printMode=true 4/11
3/17/22, 8:48 AM Syiffa Putri Meillani.ipynb - Colaboratory
data[['income', 'age']].groupby(['income'], as_index=False).mean().sort_values(by='age', a
ii. Deskripsi
Bivariate boxplot di atas menjelaskan bahwa :
Rata-rata "usia" untuk kelompok Penghasilan (<= \$50K) adalah 36,8 tahun. Dan untuk
kelompok Penghasilan (> \$50K) adalah 44,2 tahun
Kelompok pendapatan(<=50K) memiliki median "usia"(34 tahun) lebih rendah daripada
kelompok Pendapatan(>50K) yang memiliki median "usia"(42 tahun).
iii. Uji Hipotesis (untuk menguji hubungan antara Age & Income )
Two sampled T-test :-Uji Independent Samples t Test atau 2-sample t-test membandingkan rata-
rata dua kelompok independen untuk menentukan apakah ada bukti statistik bahwa rata-rata
populasi terkait berbeda secara signifikan.
Secara umum, null hypothesis akan menyatakan bahwa kedua populasi yang diuji tidak memiliki perbed
alternate hypothesis akan menyatakan bahwa ada perbedaan.
Null Hypothesis :- tidak ada perbedaan Rerata usia kelompok pendapatan >50k dan
kelompok pendapatan <=50k.
Alternate Hypothesis :- ada perbedaan Rerata usia kelompok pendapatan >50k dan
kelompok pendapatan <=50k.
import random
data = data[(np.abs(stats.zscore(data["age"])) < 3)]
https://colab.research.google.com/drive/1l6wHsFUbgXDAY8ne5-VDkICE6pe5Cs-b?hl=id#scrollTo=SqaE4Z2K3Wl6&printMode=true 5/11
3/17/22, 8:48 AM Syiffa Putri Meillani.ipynb - Colaboratory
income_1 = data[data['income']=='<=50K']['age']
income_0 = data[data['income']=='>50K']['age']
income_0 = income_0.values.tolist()
income_0 = random.sample(income_0, 100)
income_1 = income_1.values.tolist()
income_1 = random.sample(income_1, 100)
from scipy.stats import ttest_ind
ttest,pval = ttest_ind(income_1,income_0,equal_var = False)
print("ttest",ttest)
print('p value',pval)
if pval <0.05:
print("null hypothesis ditolak")
else:
print("null hypothesis diterima")
ttest -4.522346980129441
p value 1.1014567838186016e-05
Dapat disimpulkan bahwa terdapat perbedaan yang signifikan pada rerata usia kelompok berpenghasila
Hal Ini membuktikan bahwa usia memiliki peranan dalam membedakan kelompok pendapatan.
Tugas
1. Univariate analysis
1.1 hours-per-week
i. Distribusi
data['hours-per-week'].hist(figsize=(8,8))
plt.show()
https://colab.research.google.com/drive/1l6wHsFUbgXDAY8ne5-VDkICE6pe5Cs-b?hl=id#scrollTo=SqaE4Z2K3Wl6&printMode=true 6/11
3/17/22, 8:48 AM Syiffa Putri Meillani.ipynb - Colaboratory
plt.show()
data[data["hours-per-week"]>70].shape
(231, 15)
ii. Deskripsi
Histogram di atas menjelaskan bahwa :
1.2 Income
i. Distribusi
plt.figure(figsize=(7,7))
total = float(len(data) )
https://colab.research.google.com/drive/1l6wHsFUbgXDAY8ne5-VDkICE6pe5Cs-b?hl=id#scrollTo=SqaE4Z2K3Wl6&printMode=true 7/11
3/17/22, 8:48 AM Syiffa Putri Meillani.ipynb - Colaboratory
ax = sns.countplot(x="income", data=data)
for p in ax.patches:
height = p.get_height()
ax.text(p.get_x()+p.get_width()/2.,
height + 3,
'{:1.2f}'.format((height/total)*100),
ha="center")
plt.show()
ii. Deskripsi
Distribusi di atas menjelaskan bahwa :
Dataset ini tidak seimbang, yaitu 23,93% di antaranya termasuk dalam kelompok
pendapatan 1 (yang berpenghasilan lebih dari \$50K) dan 76% termasuk dalam kelompok
pendapatan 0 (yang berpenghasilan kurang dari \$50K).
2. Bivariate analysis
fig = plt.figure(figsize=(10,10))
sns.boxplot(x="income", y="hours-per-week", data=data)
plt.show()
https://colab.research.google.com/drive/1l6wHsFUbgXDAY8ne5-VDkICE6pe5Cs-b?hl=id#scrollTo=SqaE4Z2K3Wl6&printMode=true 8/11
3/17/22, 8:48 AM Syiffa Putri Meillani.ipynb - Colaboratory
data[['income', 'hours-per-week']].groupby(['income'], as_index=False).mean().sort_values(
income hours-per-week
1 >50K 44.866434
0 <=50K 38.530671
ii. Deskripsi
Bivariate boxplot di atas menjelaskan bahwa :
Rata-rata "jam per minggu" untuk kelompok Penghasilan (<= \$50K) adalah 38,5 jam. Dan
untuk kelompok Penghasilan (> \$50K) adalah 44,8 jam
Kelompok pendapatan(<=50K) memiliki median "jam per minggu"(36 jam) lebih rendah
daripada kelompok Pendapatan(>50K) yang memiliki median "usia"(42 jam).
iii. Uji Hipotesis (untuk menguji hubungan antara hours-per-week & Income )
https://colab.research.google.com/drive/1l6wHsFUbgXDAY8ne5-VDkICE6pe5Cs-b?hl=id#scrollTo=SqaE4Z2K3Wl6&printMode=true 9/11
3/17/22, 8:48 AM Syiffa Putri Meillani.ipynb - Colaboratory
Null Hypothesis :- tidak ada perbedaan Rerata kelompok pendapatan >50k dan kelompok pendapatan <=5
Alternate Hypothesis :- ada perbedaan Rerata kelompok pendapatan >50k dan kelompok pendapatan <=50
import random
data = data[(np.abs(stats.zscore(data["hours-per-week"])) < 3)]
income_1 = data[data['income']=='<=50K']['hours-per-week']
income_0 = data[data['income']=='>50K']['hours-per-week']
income_0 = income_0.values.tolist()
income_0 = random.sample(income_0, 100)
income_1 = income_1.values.tolist()
income_1 = random.sample(income_1, 100)
from scipy.stats import ttest_ind
ttest,pval = ttest_ind(income_1,income_0,equal_var = False)
print("ttest",ttest)
print('p value',pval)
if pval <0.05:
print("null hypothesis ditolak")
else:
print("null hypothesis diterima")
ttest -4.192875677432359
p value 4.201893708550591e-05
Dapat disimpulkan bahwa terdapat perbedaan pada lamanya jam kerja per minggu yang berpenghasilan >
Hal Ini membuktikan bahwa jam kerja per minggu memiliki peranan dalam membedakan kelompok pendapat
https://colab.research.google.com/drive/1l6wHsFUbgXDAY8ne5-VDkICE6pe5Cs-b?hl=id#scrollTo=SqaE4Z2K3Wl6&printMode=true 10/11
3/17/22, 8:48 AM Syiffa Putri Meillani.ipynb - Colaboratory
https://colab.research.google.com/drive/1l6wHsFUbgXDAY8ne5-VDkICE6pe5Cs-b?hl=id#scrollTo=SqaE4Z2K3Wl6&printMode=true 11/11