1. Úvod a cieľ práce

Cieľom tejto záverečnej práce bolo komplexne analyzovať vzťah medzi študijnými návykmi študentov a ich výsledným skúškovým skóre (exam_score). Analýza vychádza z datasetu student_exam_scores.csv, ktorý obsahuje informácie o počte hodín štúdia, priemernej dĺžke spánku, dochádzke na vyučovanie, predchádzajúcich študijných výsledkoch a aktuálnom výsledku skúšky.

Práca kombinuje viacero ekonometrických prístupov – lineárnu regresiu, diagnostiku modelu, testovanie špecifikácie, riešenie potenciálnej nelinearity, analýzu multikolinearity a zhlukovú analýzu. Cieľom nebolo len odhadnúť jeden model, ale systematicky overiť jeho predpoklady a preskúmať štruktúru dát z viacerých uhlov pohľadu.

Moje dáta

V práci je použitý dataset student_exam_scores.csv, ktorý obsahuje údaje o študijných návykoch a akademickom výkone študentov. Pozorovania predstavujú jednotlivých študentov a zahŕňajú informácie o výslednom skúškovom skóre (exam_score), počte hodín štúdia (hours_studied), priemernej dĺžke spánku (sleep_hours), dochádzke na vyučovanie (attendance_percent) a predchádzajúcich študijných výsledkoch (previous_scores). Všetky premenné sú kvantitatívne a vhodné na ekonometrickú analýzu.

Dáta boli pred spracovaním skontrolované a chýbajúce hodnoty boli nahradené mediánom. Základná deskriptívna a grafická analýza potvrdila realistické rozsahy hodnôt a absenciu výrazných odľahlých pozorovaní, čo umožňuje ďalšiu regresnú a zhlukovú analýzu.

2. Príprava a deskriptívna analýza dát

## Rows: 200
## Columns: 5
## $ exam_score         <dbl> 30.2, 25.0, 35.8, 34.0, 40.3, 35.7, 37.9, 18.3, 34.…
## $ hours_studied      <dbl> 8.0, 1.3, 4.0, 3.5, 9.1, 8.4, 10.8, 2.0, 5.6, 1.3, …
## $ sleep_hours        <dbl> 8.8, 8.6, 8.2, 4.8, 6.4, 5.1, 6.0, 4.3, 5.9, 8.9, 5…
## $ attendance_percent <dbl> 72.1, 60.7, 73.7, 95.1, 89.8, 58.5, 54.2, 75.8, 81.…
## $ previous_scores    <dbl> 45, 55, 86, 66, 71, 75, 88, 55, 84, 70, 81, 85, 71,…
##    exam_score    hours_studied     sleep_hours    attendance_percent
##  Min.   :17.10   Min.   : 1.000   Min.   :4.000   Min.   : 50.30    
##  1st Qu.:29.50   1st Qu.: 3.500   1st Qu.:5.300   1st Qu.: 62.20    
##  Median :34.05   Median : 6.150   Median :6.700   Median : 75.25    
##  Mean   :33.95   Mean   : 6.325   Mean   :6.622   Mean   : 74.83    
##  3rd Qu.:38.75   3rd Qu.: 9.000   3rd Qu.:8.025   3rd Qu.: 87.42    
##  Max.   :51.30   Max.   :12.000   Max.   :9.000   Max.   :100.00    
##  previous_scores
##  Min.   :40.0   
##  1st Qu.:54.0   
##  Median :67.5   
##  Mean   :66.8   
##  3rd Qu.:80.0   
##  Max.   :95.0

Histogram

Boxploty – kontrola extrémov

Dáta boli načítané zo súboru student_exam_scores.csv. Pred samotnou analýzou boli vybrané relevantné premenné a chýbajúce hodnoty boli nahradené mediánom príslušnej premennej, aby sa zachovala veľkosť vzorky a nebola narušená distribúcia dát.

Deskriptívna štatistika a boxploty ukázali, že:

  • premenné majú realistické rozsahy hodnôt,

  • nevyskytujú sa extrémne odľahlé pozorovania,

  • rozdelenia sú primerané pre ďalšiu ekonometrickú analýzu.

Tieto kroky potvrdili, že dáta sú vhodné na regresné aj exploračné metódy.

3. Lineárny regresný model a diagnostika

## 
## Call:
## lm(formula = exam_score ~ hours_studied + sleep_hours + attendance_percent, 
##     data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.5534 -2.7064 -0.1704  3.1321  7.6393 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        10.90021    1.95832   5.566 8.49e-08 ***
## hours_studied       1.62964    0.08502  19.168  < 2e-16 ***
## sleep_hours         0.57941    0.18318   3.163  0.00181 ** 
## attendance_percent  0.11907    0.01920   6.202 3.24e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.857 on 196 degrees of freedom
## Multiple R-squared:  0.6821, Adjusted R-squared:  0.6773 
## F-statistic: 140.2 on 3 and 196 DF,  p-value: < 2.2e-16

Diagnostické grafy

Test normality rezíduí a odľahlé hodnoty

## 
##  Jarque Bera Test
## 
## data:  res
## X-squared = 5.1125, df = 2, p-value = 0.0776
## No Studentized residuals with Bonferroni p < 0.05
## Largest |rstudent|:
##     rstudent unadjusted p-value Bonferroni p
## 71 -2.258485           0.025023           NA

Základný lineárny regresný model bol špecifikovaný nasledovne: \[ exam\_score = \beta_0 + \beta_1 \cdot hours\_studied + \beta_2 \cdot sleep\_hours + \beta_3 \cdot attendance\_percent + u \] Výsledky regresie ukázali, že:

  • počet hodín štúdia a dochádzka majú silný a štatisticky významný pozitívny vplyv na výsledné skóre,

  • spánok má síce pozitívny, ale slabší efekt,

  • model vysvetľuje približne 68 % variability výsledkov (R² ≈ 0.68).

Diagnostické grafy (Residuals vs. Fitted, Q–Q plot, Scale–Location, Cookova vzdialenosť) naznačili, že:

  • rezíduá sú približne normálne rozložené,

  • nevyskytuje sa výrazná heteroskedasticita,

  • model nie je ovplyvnený extrémnymi pozorovaniami.

Normalita rezíduí bola overená aj pomocou Jarque–Bera testu, ktorý nezamietol nulovú hypotézu normality.

4. Alternatívne špecifikácie a nelinearita

## 
## Call:
## lm(formula = exam_score ~ I(log(hours_studied + 1)) + sleep_hours + 
##     attendance_percent, data = df)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -9.605 -2.687  0.091  3.340  9.939 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                2.11559    2.27489   0.930  0.35353    
## I(log(hours_studied + 1)) 10.04270    0.57918  17.339  < 2e-16 ***
## sleep_hours                0.60652    0.19503   3.110  0.00215 ** 
## attendance_percent         0.11990    0.02045   5.863  1.9e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.108 on 196 degrees of freedom
## Multiple R-squared:  0.6394, Adjusted R-squared:  0.6339 
## F-statistic: 115.9 on 3 and 196 DF,  p-value: < 2.2e-16

Diagnostika log-modelu

RESET test (chyba špecifikácie)

## 
##  RESET test
## 
## data:  model
## RESET = 0.56353, df1 = 2, df2 = 194, p-value = 0.5701

C+R grafy (Component + Residual)

Kvadratická špecifikácia

## 
## Call:
## lm(formula = exam_score ~ hours_studied + I(hours_studied^2) + 
##     sleep_hours + attendance_percent + I(attendance_percent^2), 
##     data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.8885 -2.5420 -0.1928  2.9303  7.9036 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)   
## (Intercept)              2.095799   8.359165   0.251  0.80230   
## hours_studied            1.196918   0.399812   2.994  0.00311 **
## I(hours_studied^2)       0.033364   0.029985   1.113  0.26721   
## sleep_hours              0.576782   0.182831   3.155  0.00186 **
## attendance_percent       0.395018   0.225507   1.752  0.08141 . 
## I(attendance_percent^2) -0.001857   0.001512  -1.228  0.22086   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.848 on 194 degrees of freedom
## Multiple R-squared:  0.6868, Adjusted R-squared:  0.6787 
## F-statistic: 85.08 on 5 and 194 DF,  p-value: < 2.2e-16
## Analysis of Variance Table
## 
## Model 1: exam_score ~ hours_studied + sleep_hours + attendance_percent
## Model 2: exam_score ~ hours_studied + I(hours_studied^2) + sleep_hours + 
##     attendance_percent + I(attendance_percent^2)
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)
## 1    196 2915.8                           
## 2    194 2873.1  2    42.717 1.4422 0.2389
## 
##  RESET test
## 
## data:  model_poly
## RESET = 0.065584, df1 = 2, df2 = 192, p-value = 0.9365

Model so zlomom (dummy premenná)

## 
## Call:
## lm(formula = exam_score ~ DUM + hours_studied + sleep_hours + 
##     attendance_percent, data = df)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -8.594 -2.584 -0.150  3.167  7.444 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        11.06387    1.98162   5.583 7.84e-08 ***
## DUM                 0.57099    0.97955   0.583  0.56063    
## hours_studied       1.58173    0.11836  13.364  < 2e-16 ***
## sleep_hours         0.58107    0.18352   3.166  0.00179 ** 
## attendance_percent  0.11937    0.01924   6.205 3.21e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.864 on 195 degrees of freedom
## Multiple R-squared:  0.6827, Adjusted R-squared:  0.6762 
## F-statistic: 104.9 on 4 and 195 DF,  p-value: < 2.2e-16
## 
## Call:
## lm(formula = exam_score ~ hours_studied + I(DUM * hours_studied) + 
##     sleep_hours + attendance_percent, data = df)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -8.602 -2.557 -0.121  3.149  7.353 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)            11.09197    1.98099   5.599 7.24e-08 ***
## hours_studied           1.57297    0.11888  13.232  < 2e-16 ***
## I(DUM * hours_studied)  0.06085    0.08909   0.683  0.49540    
## sleep_hours             0.58164    0.18346   3.170  0.00177 ** 
## attendance_percent      0.11944    0.01923   6.211 3.12e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.862 on 195 degrees of freedom
## Multiple R-squared:  0.6829, Adjusted R-squared:  0.6764 
## F-statistic:   105 on 4 and 195 DF,  p-value: < 2.2e-16
## Analysis of Variance Table
## 
## Model 1: exam_score ~ hours_studied + sleep_hours + attendance_percent
## Model 2: exam_score ~ hours_studied + I(DUM * hours_studied) + sleep_hours + 
##     attendance_percent
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)
## 1    196 2915.8                           
## 2    195 2908.9  1    6.9593 0.4665 0.4954
## 
##  RESET test
## 
## data:  modelD_sklon
## RESET = 0.2949, df1 = 2, df2 = 193, p-value = 0.7449

Na zachytenie možného klesajúceho marginálneho efektu štúdia bola odhadnutá alternatívna špecifikácia s logaritmickou transformáciou premennej hours_studied. Tento model však dosahoval nižšie R² a horšie vysvetľoval variabilitu dát než pôvodná lineárna špecifikácia.

Ďalej bola vykonaná detailná analýza špecifikácie modelu, vrátane:

  • Ramseyho RESET testu,

  • grafickej analýzy rezíduí,

  • C+R (Component + Residual) grafov.

Tieto metódy naznačili, že lineárna forma modelu je vo všeobecnosti adekvátna, no pre niektoré premenné (najmä hours_studied) môže existovať mierna nelinearita. Z tohto dôvodu boli odhadnuté aj modely s kvadratickými členmi a modely so zlomom pomocou dummy premennej.

Výsledky ukázali, že nelineárne rozšírenia môžu mierne zlepšiť prispôsobenie modelu, avšak základný lineárny model zostáva interpretovateľný a dostatočne presný.

5. Multikolinearita v regresnom modeli

Korelačná matica

##                    hours_studied attendance_percent previous_scores
## hours_studied              1.000             -0.031           0.069
## attendance_percent        -0.031              1.000           0.052
## previous_scores            0.069              0.052           1.000

VIF – základný model

## 
## Call:
## lm(formula = exam_score ~ hours_studied + attendance_percent + 
##     previous_scores, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.9823 -2.5569  0.0532  2.5379  6.2655 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         5.02604    1.50433   3.341 0.000999 ***
## hours_studied       1.59599    0.06751  23.641  < 2e-16 ***
## attendance_percent  0.10978    0.01527   7.188 1.35e-11 ***
## previous_scores     0.15896    0.01392  11.418  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.064 on 196 degrees of freedom
## Multiple R-squared:  0.7994, Adjusted R-squared:  0.7963 
## F-statistic: 260.3 on 3 and 196 DF,  p-value: < 2.2e-16
##      hours_studied attendance_percent    previous_scores 
##           1.006029           1.003939           1.007764

Modely s vynechanými premennými

## 
## Call:
## lm(formula = exam_score ~ hours_studied + attendance_percent, 
##     data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.6345 -2.8849 -0.0802  2.9866  8.4354 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        14.59078    1.60831   9.072  < 2e-16 ***
## hours_studied       1.65060    0.08668  19.043  < 2e-16 ***
## attendance_percent  0.11925    0.01963   6.075  6.3e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.944 on 197 degrees of freedom
## Multiple R-squared:  0.6659, Adjusted R-squared:  0.6625 
## F-statistic: 196.3 on 2 and 197 DF,  p-value: < 2.2e-16
## 
## Call:
## lm(formula = exam_score ~ hours_studied + previous_scores, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.8566 -2.1947  0.1192  2.3712  8.4391 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     12.98579    1.14157   11.38   <2e-16 ***
## hours_studied    1.57899    0.07565   20.87   <2e-16 ***
## previous_scores  0.16439    0.01559   10.55   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.436 on 197 degrees of freedom
## Multiple R-squared:  0.7465, Adjusted R-squared:  0.7439 
## F-statistic:   290 on 2 and 197 DF,  p-value: < 2.2e-16

Škálované premenné

## 
## Call:
## lm(formula = exam_score ~ Hours_c + Attend_c + Prev_c, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.9823 -2.5569  0.0532  2.5379  6.2655 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  33.9550     0.2167 156.706  < 2e-16 ***
## Hours_c       5.1508     0.2179  23.641  < 2e-16 ***
## Attend_c      1.5644     0.2177   7.188 1.35e-11 ***
## Prev_c        2.4899     0.2181  11.418  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.064 on 196 degrees of freedom
## Multiple R-squared:  0.7994, Adjusted R-squared:  0.7963 
## F-statistic: 260.3 on 3 and 196 DF,  p-value: < 2.2e-16
##  Hours_c Attend_c   Prev_c 
## 1.006029 1.003939 1.007764

V ďalšej časti analýzy bola pozornosť venovaná multikolinearite medzi vysvetľujúcimi premennými, najmä medzi:

  • hours_studied,

  • attendance_percent,

  • previous_scores.

Korelačná matica a hodnoty VIF ukázali, že medzi premennými existujú len mierne vzťahy, ktoré nepredstavujú vážny problém multikolinearity. Dodatočné modely s vynechanými premennými a model so škálovanými premennými potvrdili stabilitu odhadnutých koeficientov.

Z výsledkov vyplýva, že:

  • predchádzajúce výsledky a aktuálne štúdium majú najväčší vplyv na skúškové skóre,

  • dochádzka má menší, ale samostatný efekt,

  • model je možné spoľahlivo interpretovať.

6. Zhluková analýza študentov

Matica vzdialeností a zhlukovanie (Ward D2)

Rez na 3 klastre

## # A tibble: 3 × 6
##   cluster     n avg_hours_studied avg_sleep_hours avg_attendance avg_exam_score
##   <fct>   <int>             <dbl>           <dbl>          <dbl>          <dbl>
## 1 1          45              4.64            7.99           76.1           29.9
## 2 2          97              8.84            6.66           76.2           39.2
## 3 3          58              3.42            5.49           71.6           28.3

Centroidy klastrov

## # A tibble: 3 × 6
##   cluster hours_studied sleep_hours attendance_percent previous_scores
##   <fct>           <dbl>       <dbl>              <dbl>           <dbl>
## 1 1                4.64        7.99               76.1            53.1
## 2 2                8.84        6.66               76.2            71.9
## 3 3                3.42        5.49               71.6            68.9
## # ℹ 1 more variable: exam_score <dbl>

Na doplnenie regresnej analýzy bola použitá hierarchická zhluková analýza metódou Ward D2, ktorá umožnila identifikovať skupiny študentov s podobnými charakteristikami.

Na základe dendrogramu boli identifikované tri klastre, ktoré sa odlišovali najmä:

  • úrovňou študijného úsilia (hours_studied),

  • dĺžkou spánku (sleep_hours),

  • dochádzkou (attendance_percent),

  • výsledným skúškovým skóre (exam_score).

Analýza centroidov ukázala, že:

  • Klastr 2 študentov sa vyznačuje najvyšším priemerom hodín štúdia a skúškových výsledkov,

  • Klastr 1 predstavuje priemerne študujúcich študentov so strednou dĺžkou spánku,

  • Klastr 3 obsahuje študentov s najnižším študijným úsilím a spánkom.

Vnútroklastrová variabilita naznačuje, že dochádzka a výsledné skóre sú premenné, ktoré najlepšie rozlišujú jednotlivé skupiny. Zhluková analýza tak poskytuje užitočný doplnkový pohľad k regresným výsledkom a lepšie objasňuje heterogenitu študentov.

7. Záver

Komplexná ekonometrická analýza ukázala, že študijné správanie študentov má významný vplyv na ich akademický výkon. Najdôležitejšími faktormi sú počet hodín venovaných štúdiu, dochádzka na vyučovanie a predchádzajúce študijné výsledky. Lineárny regresný model je správne špecifikovaný, spĺňa základné predpoklady a jeho výsledky sú stabilné.

Doplnenie analýzy o testy špecifikácie, riešenie nelinearity, multikolinearity a zhlukovú analýzu umožnilo hlbšie pochopenie dát a potvrdilo robustnosť záverov. Táto práca ukazuje, že kombinácia regresných a exploračných metód je vhodným nástrojom na analýzu vzdelávacích dát a môže slúžiť ako podklad pre ďalšie výskumy alebo praktické rozhodovanie v oblasti vzdelávania.