Adds graphing occupation

This commit is contained in:
Daniel Svitan 2024-12-21 19:34:11 +01:00
parent 7df964a000
commit 71603ec299
4 changed files with 24 additions and 16 deletions

View File

@ -27,7 +27,7 @@ def analyze(name: str, data: List[np.ndarray]):
return F, p return F, p
def plot_box(data, labels, Fs, ps, title): def plot_violin(data, labels, Fs, ps, title):
if not graph: if not graph:
return return
@ -52,8 +52,10 @@ def plot_box(data, labels, Fs, ps, title):
axs[j, k].text(0.01, 0.99, f"F-stat: {F}\np-val: {p}", ha="left", va="top", transform=axs[j, k].transAxes, axs[j, k].text(0.01, 0.99, f"F-stat: {F}\np-val: {p}", ha="left", va="top", transform=axs[j, k].transAxes,
fontweight="bold") fontweight="bold")
means = np.array([a.mean() for a in data[j * 2 + k]]) means = list([a.mean() for a in data[j * 2 + k]])
print(means) # TODO: add to graph for l in range(len(means)):
mean = round(means[l], 2)
axs[j, k].text(l + 1.05, mean + 0.05, f"{mean}")
fig.tight_layout() fig.tight_layout()
fig.show() fig.show()

View File

@ -1,6 +1,6 @@
import numpy as np import numpy as np
from analyze import analyze from analyze import analyze, plot_violin
dataset = np.load("clean.npy") dataset = np.load("clean.npy")
print(f"dataset shape: {dataset.shape}; analyzing column 7 (occupation)") print(f"dataset shape: {dataset.shape}; analyzing column 7 (occupation)")
@ -15,17 +15,23 @@ print("")
def analyze_occupation(name: str, col: np.ndarray): def analyze_occupation(name: str, col: np.ndarray):
occupation_col = dataset[:, 7] occupation_col = dataset[:, 7]
analyze(name, [ data = [
col[occupation_col == 0], col[occupation_col == 0],
col[occupation_col == 1], col[occupation_col == 1],
col[occupation_col == 2], col[occupation_col == 2],
col[occupation_col == 3], col[occupation_col == 3],
col[occupation_col == 4], col[occupation_col == 4],
col[occupation_col == 5] col[occupation_col == 5]
]) ]
F, p = analyze(name, data)
return data, F, p
analyze_occupation("gpa", dataset[:, 2]) data_gpa, F_gpa, p_gpa = analyze_occupation("gpa", dataset[:, 2])
analyze_occupation("math", dataset[:, 3]) data_math, F_math, p_math = analyze_occupation("math", dataset[:, 3])
analyze_occupation("slovak", dataset[:, 4]) data_slovak, F_slovak, p_slovak = analyze_occupation("slovak", dataset[:, 4])
analyze_occupation("english", dataset[:, 5]) data_english, F_english, p_english = analyze_occupation("english", dataset[:, 5])
plot_violin([data_gpa, data_math, data_slovak, data_english],
["Veľa práce", "Málo práce", "Šport", "Hudba", "Iné", "Žiadne"],
[F_gpa, F_math, F_slovak, F_english], [p_gpa, p_math, p_slovak, p_english], "Práca alebo aktivita")

View File

@ -1,6 +1,6 @@
import numpy as np import numpy as np
from analyze import analyze, plot_box from analyze import analyze, plot_violin
dataset = np.load("clean.npy") dataset = np.load("clean.npy")
print(f"dataset shape: {dataset.shape}; analyzing column 6 (ses)") print(f"dataset shape: {dataset.shape}; analyzing column 6 (ses)")
@ -26,5 +26,5 @@ data_math, F_math, p_math = analyze_ses("math", dataset[:, 3])
data_slovak, F_slovak, p_slovak = analyze_ses("slovak", dataset[:, 4]) data_slovak, F_slovak, p_slovak = analyze_ses("slovak", dataset[:, 4])
data_english, F_english, p_english = analyze_ses("english", dataset[:, 5]) data_english, F_english, p_english = analyze_ses("english", dataset[:, 5])
plot_box([data_gpa, data_math, data_slovak, data_english], ["Nižšia trieda", "Stredná trieda", "Vyššia trieda"], plot_violin([data_gpa, data_math, data_slovak, data_english], ["Nižšia trieda", "Stredná trieda", "Vyššia trieda"],
[F_gpa, F_math, F_slovak, F_english], [p_gpa, p_math, p_slovak, p_english], "Socio-ekonomická trieda") [F_gpa, F_math, F_slovak, F_english], [p_gpa, p_math, p_slovak, p_english], "Socio-ekonomická trieda")

View File

@ -1,6 +1,6 @@
import numpy as np import numpy as np
from analyze import analyze, plot_box from analyze import analyze, plot_violin
dataset = np.load("clean.npy") dataset = np.load("clean.npy")
print(f"dataset shape: {dataset.shape}; analyzing column 1 (sex)") print(f"dataset shape: {dataset.shape}; analyzing column 1 (sex)")
@ -24,5 +24,5 @@ data_math, F_math, p_math = analyze_sex("math", dataset[:, 3])
data_slovak, F_slovak, p_slovak = analyze_sex("slovak", dataset[:, 4]) data_slovak, F_slovak, p_slovak = analyze_sex("slovak", dataset[:, 4])
data_english, F_english, p_english = analyze_sex("english", dataset[:, 5]) data_english, F_english, p_english = analyze_sex("english", dataset[:, 5])
plot_box([data_gpa, data_math, data_slovak, data_english], ["Ženy", "Muži"], plot_violin([data_gpa, data_math, data_slovak, data_english], ["Ženy", "Muži"],
[F_gpa, F_math, F_slovak, F_english], [p_gpa, p_math, p_slovak, p_english], "Pohlavie") [F_gpa, F_math, F_slovak, F_english], [p_gpa, p_math, p_slovak, p_english], "Pohlavie")