#!/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()