mgr/py/1.py

52 lines
1.7 KiB
Python
Raw Permalink Normal View History

2025-05-03 19:50:29 +02:00
#!/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()