52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
![]() |
#!/usr/bin/env python3
|
||
|
# analysis.py
|
||
|
|
||
|
import pandas as pd
|
||
|
import statsmodels.api as sm
|
||
|
import matplotlib.pyplot as plt
|
||
|
|
||
|
def main():
|
||
|
# 1. Wczytywanie danych z pliku JSON
|
||
|
df = pd.read_json("../data/data.json")
|
||
|
|
||
|
# 2. Estymacja modelu regresji liniowej
|
||
|
# Definiujemy X (zmienne objaśniające) i y (zmienna objaśniana)
|
||
|
X = df[['DL', 'L2_Exposure', 'AoA', 'Usage_Frequency', 'Social_Support', 'Interference']]
|
||
|
y = df['L2_Competence']
|
||
|
|
||
|
# Dodajemy stałą do modelu
|
||
|
X = sm.add_constant(X)
|
||
|
|
||
|
model = sm.OLS(y, X).fit()
|
||
|
print(model.summary())
|
||
|
|
||
|
# 3. Tworzenie przykładowych wykresów i zapisywanie w folderze figs/
|
||
|
# Wykres 1: L2_Competence vs. L2_Exposure
|
||
|
plt.figure()
|
||
|
plt.scatter(df['L2_Exposure'], df['L2_Competence'])
|
||
|
plt.xlabel('L2 Exposure (h/tyg.)')
|
||
|
plt.ylabel('L2 Competence (punkty)')
|
||
|
plt.title('Kompetencja L2 w zależności od ekspozycji na język drugi')
|
||
|
plt.savefig('../figs/figure_1.png', dpi=300)
|
||
|
plt.close()
|
||
|
|
||
|
# Wykres 2: L2_Competence vs. DL
|
||
|
plt.figure()
|
||
|
plt.scatter(df['DL'], df['L2_Competence'])
|
||
|
plt.xlabel('Dominujący język - Czas (h/tyg.)')
|
||
|
plt.ylabel('L2 Competence (punkty)')
|
||
|
plt.title('Kompetencja L2 w zależności od czasu w języku dominującym')
|
||
|
plt.savefig('../figs/figure_2.png', dpi=300)
|
||
|
plt.close()
|
||
|
|
||
|
# 4. Zapis tabeli z danymi do formatu LaTeX (table.tex) - do dalszego wstawienia w main.tex
|
||
|
with open("../figs/table.tex", "w", encoding="utf-8") as f:
|
||
|
f.write(df.to_latex(index=False, caption="Przykładowe dane dotyczące kompetencji językowych.", label="tab:data"))
|
||
|
|
||
|
print("\nWykresy zapisano w folderze figs/.")
|
||
|
print("Tabela z danymi zapisana jako figs/table.tex.")
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|
||
|
|