1 median distribusi frekuensi
In [1]:
Copied!
import pandas as pd
import numpy as np
import pandas as pd
import numpy as np
In [2]:
Copied!
lower_bond = np.asarray([3,8,13,18,23,28] )
upper_bond = lower_bond + 4
frekuensi = [3,6,3,4,2,5]
pd_data = pd.DataFrame({"lower_bond":lower_bond, "upper_bond":upper_bond, "frekuensi":frekuensi})
pd_data
lower_bond = np.asarray([3,8,13,18,23,28] )
upper_bond = lower_bond + 4
frekuensi = [3,6,3,4,2,5]
pd_data = pd.DataFrame({"lower_bond":lower_bond, "upper_bond":upper_bond, "frekuensi":frekuensi})
pd_data
Out[2]:
lower_bond | upper_bond | frekuensi | |
---|---|---|---|
0 | 3 | 7 | 3 |
1 | 8 | 12 | 6 |
2 | 13 | 17 | 3 |
3 | 18 | 22 | 4 |
4 | 23 | 27 | 2 |
5 | 28 | 32 | 5 |
Pertama kita harus mengetahui pada kelas berapa kemungkinan nila median tersebut. Kita dapat mengetahuinya dengan cara membagi 2 jumlah frekuensi lalu menetapkan inverval kemungkinan nila tengah bearada.
In [3]:
Copied!
## Membuat frekuensi kumulatifabs
frekuensi_kumulatif = [sum(pd_data.frekuensi[0:a+1]) for a,b in enumerate(pd_data.frekuensi)]
frekuensi_kumulatif
## Membuat frekuensi kumulatifabs
frekuensi_kumulatif = [sum(pd_data.frekuensi[0:a+1]) for a,b in enumerate(pd_data.frekuensi)]
frekuensi_kumulatif
Out[3]:
[3, 9, 12, 16, 18, 23]
In [4]:
Copied!
pd_data["frekuensi_kumulatif"] = frekuensi_kumulatif
pd_data
pd_data["frekuensi_kumulatif"] = frekuensi_kumulatif
pd_data
Out[4]:
lower_bond | upper_bond | frekuensi | frekuensi_kumulatif | |
---|---|---|---|---|
0 | 3 | 7 | 3 | 3 |
1 | 8 | 12 | 6 | 9 |
2 | 13 | 17 | 3 | 12 |
3 | 18 | 22 | 4 | 16 |
4 | 23 | 27 | 2 | 18 |
5 | 28 | 32 | 5 | 23 |
In [5]:
Copied!
print(f'Nilai tengahan kemungkinan ada di interval = {pd_data.frekuensi_kumulatif[-1:]/2 }')
print(f'Nilai tengahan kemungkinan ada di interval = {pd_data.frekuensi_kumulatif[-1:]/2 }')
Nilai tengahan kemungkinan ada di interval = 5 11.5 Name: frekuensi_kumulatif, dtype: float64
Kita dapati bahwa nilai tengah berada pata 11.5, jika merujuk pada table distrbusi frekuensi nilai tersebut terletaj pada rentang nilai 13-17
. Atau pada data frame pada index ke 2
In [6]:
Copied!
color = "lightgreen"
pd_data.style.map(lambda _: f"background-color: {color}",
subset=(pd_data.index[2],))
color = "lightgreen"
pd_data.style.map(lambda _: f"background-color: {color}",
subset=(pd_data.index[2],))
Out[6]:
lower_bond | upper_bond | frekuensi | frekuensi_kumulatif | |
---|---|---|---|---|
0 | 3 | 7 | 3 | 3 |
1 | 8 | 12 | 6 | 9 |
2 | 13 | 17 | 3 | 12 |
3 | 18 | 22 | 4 | 16 |
4 | 23 | 27 | 2 | 18 |
5 | 28 | 32 | 5 | 23 |
Memasukan nilai-nilai kedalam fungsi median¶
$$ Median = B_{b} + (\frac{\frac{N}{2} - fk_{b}}{f_{d}}) \times i $$
In [7]:
Copied!
batas_bawah_kelas_median = pd_data.lower_bond[2]
n_per_2 = pd_data.frekuensi_kumulatif[-1:].iloc[0]/2
interval = (pd_data.upper_bond[2] - pd_data.lower_bond[2]) +1
frekuensi_cum_before_current_median_class = pd_data.frekuensi_kumulatif[1]
frekuens_on_current_medial_class = pd_data.frekuensi[2]
print(batas_bawah_kelas_median)
print(n_per_2)
print(interval)
print(frekuensi_cum_before_current_median_class)
print(frekuens_on_current_medial_class)
batas_bawah_kelas_median = pd_data.lower_bond[2]
n_per_2 = pd_data.frekuensi_kumulatif[-1:].iloc[0]/2
interval = (pd_data.upper_bond[2] - pd_data.lower_bond[2]) +1
frekuensi_cum_before_current_median_class = pd_data.frekuensi_kumulatif[1]
frekuens_on_current_medial_class = pd_data.frekuensi[2]
print(batas_bawah_kelas_median)
print(n_per_2)
print(interval)
print(frekuensi_cum_before_current_median_class)
print(frekuens_on_current_medial_class)
13 11.5 5 9 3
$$ Median = 12.5 + (\frac{\frac{23}{2} - 9}{3}) \times 5 $$
In [8]:
Copied!
median = (batas_bawah_kelas_median-0.5) + (((n_per_2 - frekuensi_cum_before_current_median_class)/frekuens_on_current_medial_class) * interval)
median
median = (batas_bawah_kelas_median-0.5) + (((n_per_2 - frekuensi_cum_before_current_median_class)/frekuens_on_current_medial_class) * interval)
median
Out[8]:
np.float64(16.666666666666668)
Kita mendapati bahwa nilai tengah berada pada pada kelas 13-17
dengan titik yg lebih tepat pada 16.67