1 Účel a ciele

Tento dokument analyzuje údaje z datasetu pracovných ponúk v AI prostredí.
Hľavný cieľ je na základe dát jasne a zrozumiteľne odpovedať na praktické otázky:

  • Koľko sa zarába? (rozsah a typický plat)
  • Čo najviac ovplyvňuje mzdu? (skúsenosti, seniorita, odvetvie, veľkosť firmy, režim práce)
  • Remote vs. on‑site: Je rozdiel v platoch podľa režimu práce?
  • Ktoré zručnosti sú najžiadanejšie? (TOP skills)
  • Kde sú najvyššie platy? (kombinácia lokality a veľkosti firmy)
  • Ako sa vyvíjajú ponuky v čase? (počty a medián mzdy po mesiacoch)
  • Korelácie medzi číselnými premennými cez heatmapu (bonusový bod).

2 Balíčky a dáta

Základná charakteristika datasetu

Table 2.1: Data summary
Name jobs
Number of rows 15000
Number of columns 19
_______________________
Column type frequency:
Date 2
character 12
numeric 5
________________________
Group variables None

Variable type: Date

skim_variable n_missing complete_rate min max median n_unique
posting_date 0 1 2024-01-01 2025-04-30 2024-08-28 486
application_deadline 0 1 2024-01-16 2025-07-11 2024-10-12 543

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
job_id 0 1 7 7 0 15000 0
job_title 0 1 10 27 0 20 0
salary_currency 0 1 3 3 0 3 0
experience_level 0 1 2 2 0 4 0
employment_type 0 1 2 2 0 4 0
company_location 0 1 5 14 0 20 0
company_size 0 1 1 1 0 3 0
employee_residence 0 1 5 14 0 20 0
required_skills 0 1 11 71 0 13663 0
education_required 0 1 3 9 0 4 0
industry 0 1 5 18 0 15 0
company_name 0 1 12 26 0 16 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
salary_usd 0 1 115348.97 60260.94 32519 70179.75 99705.0 146408.5 399095 ▇▅▂▁▁
remote_ratio 0 1 49.48 40.81 0 0.00 50.0 100.0 100 ▇▁▇▁▇
years_experience 0 1 6.25 5.55 0 2.00 5.0 10.0 19 ▇▅▃▂▂
job_description_length 0 1 1503.31 576.13 500 1003.75 1512.0 2000.0 2499 ▇▇▇▇▇
benefits_score 0 1 7.50 1.45 5 6.20 7.5 8.8 10 ▇▇▇▇▇

3 Predspracovanie (typy a základná filtrácia)

Interpretácia: Dátumy a kategórie sú nastavené na „kariérny“ poriadok; odstraňujem len vyslovene nerealisticky nízke mzdy, aby výsledky neboli skreslené.

4 Koľko sa zarába?

Interpretácia: Vidíme tvar rozdelenia (pravostranný chvost pri vysokých mzdách); dôležité je, kde leží jadro rozdelenia (typický plat).

5 Čo ovplyvňuje mzdu? (úroveň, režim, firma, odvetvie)

5.1 Mzdy podľa seniority

Interpretácia: Graf ukazuje, že s rastúcou úrovňou skúseností rastie aj výška mzdy. Medián miezd sa zvyšuje od úrovne Entry až po Executive. Zároveň vidíme, že rozptyl miezd sa pri vyšších pozíciách zväčšuje, čo naznačuje väčšiu variabilitu odmeňovania medzi manažérmi a špecialistami na najvyšších úrovniach.

5.2 Kombinácia lokality a veľkosti firmy

Interpretácia: Graf ukazuje 20 kombinácií krajín a veľkostí firiem s najvyšším mediánom mzdy. Väčšie spoločnosti (Large) spravidla ponúkajú vyššie platy, najmä v technologicky vyspelých krajinách ako Nemecko, Švajčiarsko či USA. Menšie firmy majú väčšinou nižšie mediány, no občas sa objavia výnimky pri špecializovaných pozíciách.

6 Ako sa ponuky vyvíjajú v čase?

Interpretácia: Počet pracovných ponúk aj mediánová mzda sa v priebehu mesiacov mierne menia. Zatiaľ čo počet ponúk vykazuje sezónne výkyvy (napr. vyšší v jarných a jesenných mesiacoch), mediánová mzda zostáva relatívne stabilná, s miernym rastom v neskoršom období. To môže odrážať zvýšený dopyt po kvalifikovaných pracovníkoch alebo posun k seniornejším pozíciám.

#Ktoré zručnosti sú najžiadanejšie? (text mining)

Interpretácia: Najčastejšie požadované zručnosti v AI inzerátoch sú programovacie jazyky a nástroje ako Python, SQL či TensorFlow. Vysoký výskyt technológií spojených so strojovým učením (napr. PyTorch, Machine Learning, Deep Learning) potvrdzuje, že trh práce v AI kladie dôraz na praktické znalosti v dátovej analýze a modelovaní.

7 Korelácie (heatmapa)

##                        salary_usd remote_ratio years_experience
## salary_usd                   1.00         0.01             0.74
## remote_ratio                 0.01         1.00             0.02
## years_experience             0.74         0.02             1.00
## job_description_length      -0.01         0.00            -0.01
## benefits_score               0.00         0.00            -0.01
##                        job_description_length benefits_score
## salary_usd                              -0.01           0.00
## remote_ratio                             0.00           0.00
## years_experience                        -0.01          -0.01
## job_description_length                   1.00           0.01
## benefits_score                           0.01           1.00

Interpretácia: Najsilnejšia pozitívna korelácia je medzi výškou mzdy (salary_usd) a dĺžkou praxe (years_experience), čo naznačuje, že skúsenosť má zásadný vplyv na odmeňovanie. Ostatné premenné, ako remote_ratio, job_description_length či benefits_score, nevykazujú výrazné vzťahy so mzdou ani medzi sebou, čo poukazuje na to, že tieto faktory nie sú priamo spojené s výškou odmeny.

8 Jednoduchý model miezd (orientačne)

## 
## Call:
## lm(formula = salary_usd ~ years_experience + remote_ratio + benefits_score + 
##     experience_level + company_size + industry, data = model_data)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -93593 -22151  -4197  18654 193413 
## 
## Coefficients:
##                              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 48514.682   2020.149  24.015   <2e-16 ***
## years_experience             -383.935    176.521  -2.175   0.0296 *  
## remote_ratio                    3.313      7.210   0.460   0.6459    
## benefits_score                212.397    202.890   1.047   0.2952    
## experience_levelMid         25378.034    944.256  26.876   <2e-16 ***
## experience_levelSenior      61060.551   1417.997  43.061   <2e-16 ***
## experience_levelExecutive  130192.874   2606.331  49.953   <2e-16 ***
## company_sizeMedium          11942.841    720.735  16.570   <2e-16 ***
## company_sizeLarge           29266.945    720.825  40.602   <2e-16 ***
## industryConsulting           -432.741   1595.466  -0.271   0.7862    
## industryEducation               7.429   1622.080   0.005   0.9963    
## industryEnergy              -1789.566   1613.592  -1.109   0.2674    
## industryFinance              -311.745   1610.208  -0.194   0.8465    
## industryGaming                277.019   1617.327   0.171   0.8640    
## industryGovernment          -1220.874   1604.794  -0.761   0.4468    
## industryHealthcare          -1668.869   1604.647  -1.040   0.2983    
## industryManufacturing        -472.442   1619.418  -0.292   0.7705    
## industryMedia               -1387.193   1586.079  -0.875   0.3818    
## industryReal Estate          1201.177   1601.103   0.750   0.4531    
## industryRetail               1249.123   1579.135   0.791   0.4289    
## industryTechnology           -308.626   1599.459  -0.193   0.8470    
## industryTelecommunications   -941.946   1605.025  -0.587   0.5573    
## industryTransportation      -1964.508   1604.883  -1.224   0.2209    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 36020 on 14977 degrees of freedom
## Multiple R-squared:  0.6431, Adjusted R-squared:  0.6426 
## F-statistic:  1227 on 22 and 14977 DF,  p-value: < 2.2e-16

Interpretácia: Model ukazuje, že skúsenosti a veľkosť firmy majú najväčší vplyv na mzdu. Senior pozície zarábajú oproti Entry-level v priemere asi o 61 000 USD viac, Executives až o 130 000 USD viac. Väčšie firmy prinášajú vyššie odmeny (cca 12-29 000 USD). Remote, benefity a odvetvie neboli štatisticky významné. Model vysvetľuje ~64 % variability miezd, čo podporuje, že kariérne faktory sú kľúčové.

9 Manažérsky sumár (tabuľka)

Table 9.1: Table 9.2: Mzdy podľa úrovne skúseností
Úroveň Počet Medián P25 P75
Executive 3760 177512.0 143966 224549.5
Senior 3741 116907.0 94173 145315.0
Mid 3781 84641.0 67621 104483.0
Entry 3718 60373.5 48516 74866.5

Interpretácia: Mzdy rastú so zvyšujúcou sa úrovňou skúseností. Entry-level pozície majú mediánovú mzdu okolo 60 000 USD, zatiaľ čo Mid-level pracovníci dosahujú približne 85 000 USD. Senior úroveň prináša už vyše 116 000 USD a Executives dosahujú medián 177 000 USD. Rozpätie miezd sa s vyššou úrovňou rozširuje, čo naznačuje väčšie platové rozdiely medzi menej a viac skúsenými manažérmi.

10 Záver

  • Rozsah miezd: Väčšina miezd je v strede, no je tam výrazný chvost k vysokým platom (často manažérske pozície).
  • Driveri miezd: Najviac rozhodujú skúsenosti a veľkosť firmy; remote a benefity majú minimálny vplyv.
  • Dopyt: Najčastejšie zručnosti sú Python, SQL, TensorFlow a Machine Learning.
  • Čas: Počet ponúk aj medián miezd sa v čase mierne menia - trh je dynamický.
  • Korelácie: Najsilnejší vzťah je skúsenosti vs. mzda, čo potvrdzuje ich kľúčový vplyv.

10.1 Úvod

Cieľom tejto úlohy je vykonať jednoduchú a viacnásobnú lineárnu regresiu nad datasetom AI Job Dataset, ktorý obsahuje informácie o platoch v odvetví umelej inteligencie.
Inšpirované prístupom z Cvičenie 5.


10.2 Načítanie a príprava dát

## Rows: 15,000
## Columns: 19
## $ job_id                 <chr> "AI00001", "AI00002", "AI00003", "AI00004", "AI…
## $ job_title              <chr> "AI Research Scientist", "AI Software Engineer"…
## $ salary_usd             <int> 90376, 61895, 152626, 80215, 54624, 123574, 796…
## $ salary_currency        <chr> "USD", "USD", "USD", "USD", "EUR", "EUR", "GBP"…
## $ experience_level       <chr> "SE", "EN", "MI", "SE", "EN", "SE", "MI", "EN",…
## $ employment_type        <chr> "CT", "CT", "FL", "FL", "PT", "CT", "FL", "FL",…
## $ company_location       <chr> "China", "Canada", "Switzerland", "India", "Fra…
## $ company_size           <chr> "M", "M", "L", "M", "S", "M", "S", "L", "L", "M…
## $ employee_residence     <chr> "China", "Ireland", "South Korea", "India", "Si…
## $ remote_ratio           <int> 50, 100, 0, 50, 100, 50, 0, 0, 0, 0, 100, 0, 10…
## $ required_skills        <chr> "Tableau, PyTorch, Kubernetes, Linux, NLP", "De…
## $ education_required     <chr> "Bachelor", "Master", "Associate", "PhD", "Mast…
## $ years_experience       <int> 9, 1, 2, 7, 0, 7, 3, 0, 7, 5, 8, 15, 5, 0, 6, 0…
## $ industry               <chr> "Automotive", "Media", "Education", "Consulting…
## $ posting_date           <chr> "2024-10-18", "2024-11-20", "2025-03-18", "2024…
## $ application_deadline   <chr> "2024-11-07", "2025-01-11", "2025-04-07", "2025…
## $ job_description_length <int> 1076, 1268, 1974, 1345, 1989, 819, 1936, 1286, …
## $ benefits_score         <dbl> 5.9, 5.2, 9.4, 8.6, 6.6, 5.9, 6.3, 7.6, 9.3, 5.…
## $ company_name           <chr> "Smart Analytics", "TechCorp Inc", "Autonomous …
##     job_id           job_title           salary_usd     salary_currency   
##  Length:15000       Length:15000       Min.   : 32519   Length:15000      
##  Class :character   Class :character   1st Qu.: 70180   Class :character  
##  Mode  :character   Mode  :character   Median : 99705   Mode  :character  
##                                        Mean   :115349                     
##                                        3rd Qu.:146409                     
##                                        Max.   :399095                     
##  experience_level   employment_type    company_location   company_size      
##  Length:15000       Length:15000       Length:15000       Length:15000      
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##  employee_residence  remote_ratio    required_skills    education_required
##  Length:15000       Min.   :  0.00   Length:15000       Length:15000      
##  Class :character   1st Qu.:  0.00   Class :character   Class :character  
##  Mode  :character   Median : 50.00   Mode  :character   Mode  :character  
##                     Mean   : 49.48                                        
##                     3rd Qu.:100.00                                        
##                     Max.   :100.00                                        
##  years_experience   industry         posting_date       application_deadline
##  Min.   : 0.000   Length:15000       Length:15000       Length:15000        
##  1st Qu.: 2.000   Class :character   Class :character   Class :character    
##  Median : 5.000   Mode  :character   Mode  :character   Mode  :character    
##  Mean   : 6.253                                                             
##  3rd Qu.:10.000                                                             
##  Max.   :19.000                                                             
##  job_description_length benefits_score   company_name      
##  Min.   : 500           Min.   : 5.000   Length:15000      
##  1st Qu.:1004           1st Qu.: 6.200   Class :character  
##  Median :1512           Median : 7.500   Mode  :character  
##  Mean   :1503           Mean   : 7.504                     
##  3rd Qu.:2000           3rd Qu.: 8.800                     
##  Max.   :2499           Max.   :10.000

10.3 Korelačná analýza

Cieľom je pozrieť sa na vzťahy medzi numerickými premennými v datasete.

Interpretácia:
Vyššie korelácie znamenajú silnejší vzťah medzi premennými. Napríklad silný vzťah medzi salary_usd a years_experience môže naznačovať, že skúsenosti sú významným faktorom ovplyvňujúcim výšku mzdy.


10.4 Jednoduchá lineárna regresia

Budeme skúmať, ako skúsenosti ovplyvňujú plat v USD.

## 
## Call:
## lm(formula = salary_usd ~ years_experience, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -129178  -24881   -5950   18845  253718 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      65233.53     500.78   130.3   <2e-16 ***
## years_experience  8014.37      59.92   133.8   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 40690 on 14998 degrees of freedom
## Multiple R-squared:  0.544,  Adjusted R-squared:  0.544 
## F-statistic: 1.789e+04 on 1 and 14998 DF,  p-value: < 2.2e-16

10.4.1 Interpretácia:

  • Koeficient pri years_experience ukazuje, o koľko sa priemerný plat zmení pri zvýšení skúseností o 1 rok.
  • P-hodnota ukazuje štatistickú významnosť tohto vzťahu (ak < 0.05, môžeme povedať, že skúsenosti majú významný vplyv).
  • hovorí, aká časť variability platu je vysvetlená skúsenosťami.

10.4.2 Grafická vizualizácia


10.5 Viacnásobná lineárna regresia

Do modelu pridáme ďalšie premenné – napríklad remote_ratio a benefits_score.

## 
## Call:
## lm(formula = salary_usd ~ years_experience + remote_ratio + benefits_score, 
##     data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -128846  -24823   -5999   18829  253315 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      63079.996   1835.080  34.375   <2e-16 ***
## years_experience  8014.467     59.926 133.739   <2e-16 ***
## remote_ratio         3.554      8.143   0.436    0.663    
## benefits_score     263.459    229.034   1.150    0.250    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 40700 on 14996 degrees of freedom
## Multiple R-squared:  0.544,  Adjusted R-squared:  0.5439 
## F-statistic:  5964 on 3 and 14996 DF,  p-value: < 2.2e-16

10.5.1 Interpretácia:

  • Každý koeficient ukazuje vplyv danej premennej na plat, pri konštantných ostatných faktoroch.
  • Ak má napríklad remote_ratio negatívny koeficient, môžeme interpretovať, že väčší podiel práce na diaľku je spojený s mierne nižším platom (v priemere).
  • Adjusted R² ukazuje, či viac premenných zlepšuje vysvetlenie variability v platoch.

10.5.2 Porovnanie modelov

Ak má model2 vyššie Adjusted R², znamená to, že pridanie ďalších premenných zlepšilo vysvetľovaciu silu modelu.


10.5.3 Vizualizácia: Predikované vs. skutočné platy


10.6 Záver

  • Jednoduchý model ukázal jasný vplyv skúseností na plat.
  • Rozšírený model naznačil, že faktory ako remote_ratio a benefits_score môžu mať dodatočný efekt.
  • Výsledky ukazujú, že kombinácia viacerých premenných lepšie opisuje realitu platového trhu v AI odvetví.
  • V praxi by bolo vhodné rozšíriť model o ďalšie premenné (napr. lokalitu, rolu, typ spoločnosti) a testovať aj nelineárne vzťahy.

## Rows: 15,000
## Columns: 19
## $ job_id                 <chr> "AI00001", "AI00002", "AI00003", "AI00004", "AI…
## $ job_title              <chr> "AI Research Scientist", "AI Software Engineer"…
## $ salary_usd             <dbl> 90376, 61895, 152626, 80215, 54624, 123574, 796…
## $ salary_currency        <chr> "USD", "USD", "USD", "USD", "EUR", "EUR", "GBP"…
## $ experience_level       <chr> "SE", "EN", "MI", "SE", "EN", "SE", "MI", "EN",…
## $ employment_type        <chr> "CT", "CT", "FL", "FL", "PT", "CT", "FL", "FL",…
## $ company_location       <chr> "China", "Canada", "Switzerland", "India", "Fra…
## $ company_size           <chr> "M", "M", "L", "M", "S", "M", "S", "L", "L", "M…
## $ employee_residence     <chr> "China", "Ireland", "South Korea", "India", "Si…
## $ remote_ratio           <dbl> 50, 100, 0, 50, 100, 50, 0, 0, 0, 0, 100, 0, 10…
## $ required_skills        <chr> "Tableau, PyTorch, Kubernetes, Linux, NLP", "De…
## $ education_required     <chr> "Bachelor", "Master", "Associate", "PhD", "Mast…
## $ years_experience       <dbl> 9, 1, 2, 7, 0, 7, 3, 0, 7, 5, 8, 15, 5, 0, 6, 0…
## $ industry               <chr> "Automotive", "Media", "Education", "Consulting…
## $ posting_date           <date> 2024-10-18, 2024-11-20, 2025-03-18, 2024-12-23…
## $ application_deadline   <date> 2024-11-07, 2025-01-11, 2025-04-07, 2025-02-24…
## $ job_description_length <dbl> 1076, 1268, 1974, 1345, 1989, 819, 1936, 1286, …
## $ benefits_score         <dbl> 5.9, 5.2, 9.4, 8.6, 6.6, 5.9, 6.3, 7.6, 9.3, 5.…
## $ company_name           <chr> "Smart Analytics", "TechCorp Inc", "Autonomous …

Komentár: Dataset má 19 premenných a 15 000 riadkov. Premenné sú správne načítané (chr, dbl, date). Dáta sú konzistentné.


11 Deskriptívne štatistiky

##    salary_usd     years_experience  remote_ratio    job_description_length
##  Min.   : 32519   Min.   : 0.000   Min.   :  0.00   Min.   : 500          
##  1st Qu.: 70180   1st Qu.: 2.000   1st Qu.:  0.00   1st Qu.:1004          
##  Median : 99705   Median : 5.000   Median : 50.00   Median :1512          
##  Mean   :115349   Mean   : 6.253   Mean   : 49.48   Mean   :1503          
##  3rd Qu.:146409   3rd Qu.:10.000   3rd Qu.:100.00   3rd Qu.:2000          
##  Max.   :399095   Max.   :19.000   Max.   :100.00   Max.   :2499          
##  benefits_score  
##  Min.   : 5.000  
##  1st Qu.: 6.200  
##  Median : 7.500  
##  Mean   : 7.504  
##  3rd Qu.: 8.800  
##  Max.   :10.000

Komentár:
- Priemerná mzda ~115k USD, medián ~99k → rozdelenie je pravostranné.
- Roky praxe: priemer 6.25, medián 5 → veľa juniorov aj seniorov.
- Remote_ratio má tri hodnoty (0/50/100).
- job_description_length ~1500 znakov → texty sú stredne dlhé.
- benefits_score ~7.5 → firmy ponúkajú relatívne dobré benefity.


12 Vizualizácia rozdelení

Komentár:
Mzdy sú silne šikmé, čo naznačuje potrebu logaritmickej transformácie. Roky praxe majú normálnejšie rozdelenie.


13 Príprava dát

Komentár:
Transformácia prebehla správne. log_salary je pripravené na regresiu.


14 Lineárny model HRUBÝCH miezd

## 
## Call:
## lm(formula = salary_usd ~ years_experience + remote_factor + 
##     benefits_score + company_size + education_required + experience_level, 
##     data = ai_jobs)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -93621 -22098  -4144  18624 194703 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 47262.0     1810.3  26.107   <2e-16 ***
## years_experience             -383.3      176.4  -2.173   0.0298 *  
## remote_factorhybrid          1084.8      717.8   1.511   0.1307    
## remote_factorremote           346.0      720.9   0.480   0.6313    
## benefits_score                213.9      202.8   1.055   0.2915    
## company_sizemedium          11963.3      720.5  16.604   <2e-16 ***
## company_sizelarge           29261.6      720.5  40.613   <2e-16 ***
## education_requiredBachelor    903.2      827.9   1.091   0.2753    
## education_requiredMaster      431.1      830.2   0.519   0.6036    
## education_requiredPhD         433.7      834.2   0.520   0.6032    
## experience_levelmid         25343.4      943.6  26.859   <2e-16 ***
## experience_levelsenior      61033.6     1416.7  43.082   <2e-16 ***
## experience_levelexecutive  130121.0     2604.2  49.966   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 36020 on 14987 degrees of freedom
## Multiple R-squared:  0.643,  Adjusted R-squared:  0.6427 
## F-statistic:  2249 on 12 and 14987 DF,  p-value: < 2.2e-16

Interpretácia:
- Adjusted R² = 0.643 → model vysvetľuje 64% variácie miezd.
- Koeficient pri years_experience = -383.3, p=0.0298 → negatívny efekt → ekonomicky nezmyselné, znak zlej špecifikácie.
- Veľkosť firmy (medium +12k, large +29k) veľmi významné p<0.001.
- Seniorita (mid +25k, senior +61k, executive +130k) extrémne významná → dáva perfektný zmysel.
- Remote režim a benefity sú nevýznamné v tejto špecifikácii.


14.1 Diagnostika

Komentár:
Residuals vs Fitted ukazuje heteroskedasticitu. QQ-plot ukazuje porušenú normalitu.

## 
##  RESET test
## 
## data:  model_lin_salary
## RESET = 140.46, df1 = 2, df2 = 14985, p-value < 2.2e-16

Komentár:
RESET p < 2e-16 → model je funkčne zle špecifikovaný, treba transformáciu.


15 Log-lineárny model

## 
## Call:
## lm(formula = log_salary ~ years_experience + remote_factor + 
##     benefits_score + company_size + education_required + experience_level, 
##     data = ai_jobs)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.61804 -0.20151 -0.01739  0.20936  0.70759 
## 
## Coefficients:
##                              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                10.8850608  0.0137258 793.036   <2e-16 ***
## years_experience           -0.0020644  0.0013373  -1.544    0.123    
## remote_factorhybrid         0.0073834  0.0054421   1.357    0.175    
## remote_factorremote         0.0057899  0.0054655   1.059    0.289    
## benefits_score              0.0002966  0.0015375   0.193    0.847    
## company_sizemedium          0.1083028  0.0054629  19.825   <2e-16 ***
## company_sizelarge           0.2531485  0.0054628  46.341   <2e-16 ***
## education_requiredBachelor  0.0050083  0.0062774   0.798    0.425    
## education_requiredMaster    0.0017885  0.0062947   0.284    0.776    
## education_requiredPhD       0.0015523  0.0063250   0.245    0.806    
## experience_levelmid         0.3336675  0.0071541  46.640   <2e-16 ***
## experience_levelsenior      0.6706293  0.0107411  62.436   <2e-16 ***
## experience_levelexecutive   1.1130338  0.0197449  56.371   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2731 on 14987 degrees of freedom
## Multiple R-squared:  0.6966, Adjusted R-squared:  0.6963 
## F-statistic:  2867 on 12 and 14987 DF,  p-value: < 2.2e-16

Interpretácia:
- Adjusted R² = 0.696 → zlepšenie oproti predchádzajúcemu modelu.
- years_experience už nie je významne → log transformácia stabilizovala vzťah.
- company_size: medium ≈ +11% mzdy, large ≈ +29%.
- experience_level: mid ≈ +39%, senior ≈ +96%, executive ≈ +205%.
- Remote a benefity stále nevýznamné.

## 
##  RESET test
## 
## data:  model_log_salary
## RESET = 0.015648, df1 = 2, df2 = 14985, p-value = 0.9845

Komentár:
p = 0.984 → log model má správny funkčný tvar. Toto je hlavný argument, prečo je log-shape najlepší.


16 Log model + kvadratická skúsenosť

## 
## Call:
## lm(formula = log_salary ~ years_experience + exp2 + remote_factor + 
##     benefits_score + company_size + education_required + experience_level, 
##     data = ai_jobs)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.62023 -0.20218 -0.01756  0.20967  0.70533 
## 
## Coefficients:
##                              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                10.8832028  0.0138339 786.703   <2e-16 ***
## years_experience            0.0020347  0.0040375   0.504    0.614    
## exp2                       -0.0001689  0.0001570  -1.076    0.282    
## remote_factorhybrid         0.0074380  0.0054423   1.367    0.172    
## remote_factorremote         0.0057649  0.0054655   1.055    0.292    
## benefits_score              0.0002843  0.0015376   0.185    0.853    
## company_sizemedium          0.1082576  0.0054631  19.816   <2e-16 ***
## company_sizelarge           0.2531756  0.0054628  46.345   <2e-16 ***
## education_requiredBachelor  0.0050649  0.0062776   0.807    0.420    
## education_requiredMaster    0.0017915  0.0062947   0.285    0.776    
## education_requiredPhD       0.0015500  0.0063250   0.245    0.806    
## experience_levelmid         0.3248897  0.0108504  29.943   <2e-16 ***
## experience_levelsenior      0.6525088  0.0199745  32.667   <2e-16 ***
## experience_levelexecutive   1.0924037  0.0275221  39.692   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2731 on 14986 degrees of freedom
## Multiple R-squared:  0.6966, Adjusted R-squared:  0.6963 
## F-statistic:  2647 on 13 and 14986 DF,  p-value: < 2.2e-16

Komentár:
Ani years_experience (p=0.61) ani exp2 (p=0.28) nie sú významné → žiadna nelinearita.

Komentár:
p=0.28 → kvadratický člen nezlepšuje model. Hypotéza H1 zamietnutá.

## 
##  RESET test
## 
## data:  model_log_quad
## RESET = 0.0073198, df1 = 2, df2 = 14984, p-value = 0.9927

Komentár:
p=0.99 → špecifikácia je OK aj s exp2, ale bez neho je to jednoduchšie.


17 Interakcia remote × benefity

## 
## Call:
## lm(formula = log_salary ~ years_experience + exp2 + remote_factor * 
##     benefits_score + company_size + education_required + experience_level, 
##     data = ai_jobs)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.6203 -0.2023 -0.0177  0.2093  0.7070 
## 
## Coefficients:
##                                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                        10.8680853  0.0213395 509.295   <2e-16 ***
## years_experience                    0.0019917  0.0040379   0.493    0.622    
## exp2                               -0.0001681  0.0001570  -1.071    0.284    
## remote_factorhybrid                 0.0180911  0.0287292   0.630    0.529    
## remote_factorremote                 0.0407251  0.0288086   1.414    0.157    
## benefits_score                      0.0023014  0.0026564   0.866    0.386    
## company_sizemedium                  0.1082479  0.0054632  19.814   <2e-16 ***
## company_sizelarge                   0.2531361  0.0054630  46.337   <2e-16 ***
## education_requiredBachelor          0.0051109  0.0062780   0.814    0.416    
## education_requiredMaster            0.0017405  0.0062950   0.276    0.782    
## education_requiredPhD               0.0015768  0.0063252   0.249    0.803    
## experience_levelmid                 0.3250364  0.0108523  29.951   <2e-16 ***
## experience_levelsenior              0.6527731  0.0199778  32.675   <2e-16 ***
## experience_levelexecutive           1.0927929  0.0275283  39.697   <2e-16 ***
## remote_factorhybrid:benefits_score -0.0014169  0.0037630  -0.377    0.707    
## remote_factorremote:benefits_score -0.0046522  0.0037644  -1.236    0.217    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2731 on 14984 degrees of freedom
## Multiple R-squared:  0.6966, Adjusted R-squared:  0.6963 
## F-statistic:  2294 on 15 and 14984 DF,  p-value: < 2.2e-16

Komentár:
Ani jedna interakcia nie je významná (p=0.71 a p=0.22).
→ Remote ≠ „zvyšuje hodnotu benefitov“. Hypotéza H2 zamietnutá.

## 
##  RESET test
## 
## data:  model_interact
## RESET = 0.014935, df1 = 2, df2 = 14982, p-value = 0.9852

Komentár:
p = 0.985 → model je dobre špecifikovaný, ale interakcie netreba.


18 Porovnanie modelov

##                        R2_adj        AIC        BIC
## linear_salary       0.6426850 357339.271 357445.893
## log_salary          0.6963222   3646.941   3753.562
## log_salary_quad     0.6963253   3647.782   3762.019
## log_salary_interact 0.6963173   3650.177   3779.646

Komentár:
- Najvyššie Adjusted R² má log model (~0.696).
- Najnižšie AIC má tiež log model.
- Kvadratické ani interakčné prvky model nijak nezlepšujú.


19 Celkový záver

  • Najlepší model = log-lineárny.
  • H1 (nelinearita skúseností): nepodporená.
  • H2 (remote × benefity): nepodporené.
  • H3 (veľké firmy platia viac): silne podporené.
  • H4 (log transformácia lepšia): jednoznačne potvrdené.

Mzdy v AI vysvetľuje najmä seniority a veľkosť firmy.
Remote režim, benefity a samotné roky praxe majú minimálny dopad po kontrole za ostatné premenne.

# Načítanie a základný popis dát
## 'data.frame': 15000 obs. of 19 variables: ## $ job_id : Factor w/ 15000 levels "AI00001","AI00002",..: 1 2 3 4 5 6 7 8 9 10 ... ## $ job_title : Factor w/ 20 levels "AI Architect",..: 4 5 6 17 2 1 18 17 9 5 ... ## $ salary_usd : int 90376 61895 152626 80215 54624 123574 79670 70640 160710 102557 ... ## $ salary_currency : Factor w/ 3 levels "EUR","GBP","USD": 3 3 3 3 1 1 2 1 3 3 ... ## $ experience_level : Factor w/ 4 levels "EN","EX","MI",..: 4 1 3 4 1 4 3 1 4 4 ... ## $ employment_type : Factor w/ 4 levels "CT","FL","FT",..: 1 1 2 2 4 1 2 2 1 4 ... ## $ company_location : Factor w/ 20 levels "Australia","Austria",..: 8 3 18 9 6 7 19 6 15 2 ... ## $ company_size : Factor w/ 3 levels "L","M","S": 2 2 1 2 3 2 3 1 1 2 ... ## $ employee_residence : Factor w/ 20 levels "Australia","Austria",..: 8 10 16 9 15 7 19 6 15 2 ... ## $ remote_ratio : int 50 100 0 50 100 50 0 0 0 0 ... ## $ required_skills : Factor w/ 13663 levels "AWS, Azure, GCP, Docker",..: 12974 1780 5168 10832 6997 1652 9724 8621 3954 6942 ... ## $ education_required : Factor w/ 4 levels "Associate","Bachelor",..: 2 3 1 4 3 1 1 3 4 3 ... ## $ years_experience : int 9 1 2 7 0 7 3 0 7 5 ... ## $ industry : Factor w/ 15 levels "Automotive","Consulting",..: 1 10 3 2 10 8 6 8 7 7 ... ## $ posting_date : Date, format: "2024-10-18" "2024-11-20" ... ## $ application_deadline : Date, format: "2024-11-07" "2025-01-11" ... ## $ job_description_length: int 1076 1268 1974 1345 1989 819 1936 1286 551 2340 ... ## $ benefits_score : num 5.9 5.2 9.4 8.6 6.6 5.9 6.3 7.6 9.3 5.8 ... ## $ company_name : Factor w/ 16 levels "Advanced Robotics",..: 15 16 4 10 1 12 7 5 14 5 ...
## job_id job_title salary_usd ## AI00001: 1 Machine Learning Researcher: 808 Min. : 32519 ## AI00002: 1 AI Software Engineer : 784 1st Qu.: 70180 ## AI00003: 1 Autonomous Systems Engineer: 777 Median : 99705 ## AI00004: 1 Machine Learning Engineer : 772 Mean :115349 ## AI00005: 1 AI Architect : 771 3rd Qu.:146409 ## AI00006: 1 Head of AI : 765 Max. :399095 ## (Other):14994 (Other) :10323 ## salary_currency experience_level employment_type company_location ## EUR: 2314 EN:3718 CT:3721 Germany : 814 ## GBP: 729 EX:3760 FL:3758 Denmark : 778 ## USD:11957 MI:3781 FT:3812 Canada : 769 ## SE:3741 PT:3709 France : 769 ## Austria : 765 ## Singapore: 764 ## (Other) :10341 ## company_size employee_residence remote_ratio ## L:4998 Sweden : 790 Min. : 0.00 ## M:4995 France : 781 1st Qu.: 0.00 ## S:5007 Denmark: 777 Median : 50.00 ## Austria: 776 Mean : 49.48 ## India : 772 3rd Qu.:100.00 ## Germany: 769 Max. :100.00 ## (Other):10335 ## required_skills education_required ## Python, TensorFlow, PyTorch : 17 Associate:3785 ## Python, TensorFlow, Tableau : 9 Bachelor :3789 ## Python, TensorFlow, Data Visualization: 7 Master :3748 ## Python, TensorFlow, Linux : 7 PhD :3678 ## Python, TensorFlow, MLOps : 7 ## Linux, Python, TensorFlow : 6 ## (Other) :14947 ## years_experience industry posting_date application_deadline ## Min. : 0.000 Retail :1063 Min. :2024-01-01 Min. :2024-01-16 ## 1st Qu.: 2.000 Media :1045 1st Qu.:2024-04-29 1st Qu.:2024-06-13 ## Median : 5.000 Automotive :1020 Median :2024-08-28 Median :2024-10-12 ## Mean : 6.253 Consulting :1020 Mean :2024-08-29 Mean :2024-10-11 ## 3rd Qu.:10.000 Technology :1011 3rd Qu.:2024-12-29 3rd Qu.:2025-02-10 ## Max. :19.000 Real Estate:1007 Max. :2025-04-30 Max. :2025-07-11 ## (Other) :8834 ## job_description_length benefits_score company_name ## Min. : 500 Min. : 5.000 TechCorp Inc : 980 ## 1st Qu.:1004 1st Qu.: 6.200 Cognitive Computing : 972 ## Median :1512 Median : 7.500 AI Innovations : 964 ## Mean :1503 Mean : 7.504 Digital Transformation LLC: 961 ## 3rd Qu.:2000 3rd Qu.: 8.800 Future Systems : 960 ## Max. :2499 Max. :10.000 Quantum Computing Inc : 960 ## (Other) :9203
Komentár k štruktúre a základnému súhrnu:
- Dataset má 15 000 riadkov a 19 premenných – 1 riadok = 1 pozícia. - Kľúčové premenné: - salary_usd – ročný plat (int), - remote_ratio – podiel remote práce v %, - years_experience – požadované roky praxe, - job_description_length – dĺžka popisu (500–2499), - benefits_score – skóre benefitov (5–10). - Platy: - min ≈ 32 519 USD, max ≈ 399 095 USD, - medián ≈ 99 705 USD, priemer ≈ 115 349 USD → vysoký rozptyl. - Prax: - 0 až 19 rokov, medián 5, priemer ≈ 6.25 → prevažne junior/medior, aj senior. - Remote: - typicky 0 / 50 / 100, priemer ≈ 49.5 → približná rovnováha on-site, hybrid, full-remote. - Benefity: - priemer ≈ 7.5, 1Q ≈ 6.2, 3Q ≈ 8.8 → firmy dávajú skôr lepšie benefity.

19.1 Numerické premenné a korelácie

##    salary_usd      remote_ratio    years_experience job_description_length
##  Min.   : 32519   Min.   :  0.00   Min.   : 0.000   Min.   : 500          
##  1st Qu.: 70180   1st Qu.:  0.00   1st Qu.: 2.000   1st Qu.:1004          
##  Median : 99705   Median : 50.00   Median : 5.000   Median :1512          
##  Mean   :115349   Mean   : 49.48   Mean   : 6.253   Mean   :1503          
##  3rd Qu.:146409   3rd Qu.:100.00   3rd Qu.:10.000   3rd Qu.:2000          
##  Max.   :399095   Max.   :100.00   Max.   :19.000   Max.   :2499          
##  benefits_score  
##  Min.   : 5.000  
##  1st Qu.: 6.200  
##  Median : 7.500  
##  Mean   : 7.504  
##  3rd Qu.: 8.800  
##  Max.   :10.000

Komentár k numerickým premenným:

  • salary_usd má široké rozpätie - podstatné pre regresiu aj zhlukovanie.
  • years_experience má rozumné rozdelenie (0-19), takže vie odlíšiť junior vs senior.
  • job_description_length je pomerne rovnomerná v 500-2499 - inzeráty sú väčšinou dlhé.
  • benefits_score je hlavne medzi 6 a 9 - extrémne slabé benefity sa takmer nevyskytujú.
##                           salary_usd remote_ratio years_experience
## salary_usd              1.0000000000  0.013726826      0.737555909
## remote_ratio            0.0137268260  1.000000000      0.015320983
## years_experience        0.7375559087  0.015320983      1.000000000
## job_description_length -0.0090922171  0.004474897     -0.007526152
## benefits_score          0.0009852305  0.003139244     -0.007274574
##                        job_description_length benefits_score
## salary_usd                       -0.009092217   0.0009852305
## remote_ratio                      0.004474897   0.0031392438
## years_experience                 -0.007526152  -0.0072745740
## job_description_length            1.000000000   0.0067435618
## benefits_score                    0.006743562   1.0000000000

Komentár ku koreláciám:

  • Kľúčové: corr(salary_usd, years_experience) ≈ 0.74 - silná pozitívna korelácia (viac praxe = vyšší plat).
  • Ostatné vzťahy so mzdou sú zanedbateľné: remote_ratio ≈ 0.014, job_description_length ≈ -0.009, benefits_score ≈ 0.001
  • tieto premenné plat lineárne nevysvetľujú.
  • Medzi ostatnými číselnými premennými sú korelácie tiež slabé - nízke riziko multikolinearity.

20 Zhluková analýza (k-means)

Cieľ: rozdeliť pracovné ponuky na prirodzené skupiny podľa číselných vlastností.

## [1] 15000

Komentár k príprave:

  • Používame 5 číselných premenných priamo viazaných na job.
  • Po odstránení NA ostáva 15 000 pozorovaní - vzorka je stále dostatočná.
  • Škálovanie (štandardizácia) zabezpečí porovnateľné mierky, aby plat neprebil ostatné premenné.

20.1 Elbow graf

Komentár k Elbow grafu:

  • WSS prudko klesá pri k = 2 a ešte výrazne pri k = 3.
  • Od k = 3 sa zlepšenie spomaľuje, krivka sa vyrovnáva.
  • Najlepší kompromis je k = 3 klastre.

20.2 K-means s k = 3

## 
##    1    2    3 
## 5555 4076 5369

Komentár k veľkosti klastrov:

  • Počty v klastroch (vo výstupe table) sú:
    • klaster 1: 5555 pozícií,
    • klaster 2: 4076 pozícií,
    • klaster 3: 5369 pozícií.
  • Klastre sú početne vyvážené – nie je tam žiaden extrémne malý segment.

Komentár k priemerom v klastroch:

Z tabuľky cluster_means vidíme:

  • Jeden klaster má najvyšší salary_usd aj years_experience - ide o senior / high-pay pozície.
  • Zvyšné dva klastre sú skôr junior/medior a líšia sa najmä v benefits_score:
    • vyššie benefity - „junior/medior s lepšími benefitmi“,
    • nižšie benefity - „junior/medior so slabšími benefitmi“.
  • remote_ratio a job_description_length sa líšia len mierne - nie sú hlavný driver klastrov.

21 Regresný model a autokorelácia rezíduí

21.1 Príprava dát na regresiu

##    salary_usd     years_experience  remote_ratio    job_description_length
##  Min.   : 32519   Min.   : 0.000   Min.   :  0.00   Min.   : 500          
##  1st Qu.: 70180   1st Qu.: 2.000   1st Qu.:  0.00   1st Qu.:1004          
##  Median : 99705   Median : 5.000   Median : 50.00   Median :1512          
##  Mean   :115349   Mean   : 6.253   Mean   : 49.48   Mean   :1503          
##  3rd Qu.:146409   3rd Qu.:10.000   3rd Qu.:100.00   3rd Qu.:2000          
##  Max.   :399095   Max.   :19.000   Max.   :100.00   Max.   :2499          
##  benefits_score    posting_date       
##  Min.   : 5.000   Min.   :2024-01-01  
##  1st Qu.: 6.200   1st Qu.:2024-04-29  
##  Median : 7.500   Median :2024-08-28  
##  Mean   : 7.504   Mean   :2024-08-29  
##  3rd Qu.: 8.800   3rd Qu.:2024-12-29  
##  Max.   :10.000   Max.   :2025-04-30

Komentár k regresným dátam:

  • Zachovávame rovnakých 15 000 pozícií (bez NA).
  • Dáta sú zoradené podľa posting_date, aby malo testovanie autokorelácie rezíduí nejakú časovú logiku.
  • Rozdelenie salary_usd, years_experience, remote_ratio, job_description_length a benefits_score je rovnaké ako v úvodnej deskriptíve.

21.2 Odhad lineárneho modelu

## 
## Call:
## lm(formula = reg_formula, data = reg_data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -128907  -24849   -5950   18892  253606 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)            63638.4712  2025.2099  31.423   <2e-16 ***
## years_experience        8014.1719    59.9288 133.728   <2e-16 ***
## remote_ratio               3.5778     8.1430   0.439    0.660    
## job_description_length    -0.3760     0.5768  -0.652    0.514    
## benefits_score           264.4552   229.0432   1.155    0.248    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 40700 on 14995 degrees of freedom
## Multiple R-squared:  0.544,  Adjusted R-squared:  0.5439 
## F-statistic:  4473 on 4 and 14995 DF,  p-value: < 2.2e-16

Komentár k výsledkom regresie:

  • Model: [ = 63,638.47

  • 8,014.17 years_experience

  • 3.58 remote_ratio

  • 0.38 job_description_length

  • 264.46 benefits_score ]

  • years_experience: koef. ≈ 8 014 USD, p-value < 2e-16 - každý rok praxe zvyšuje plat o ~8k USD (hlavný driver).

  • remote_ratio: koef. ≈ 3.58, p ≈ 0.66 - nevýznamné; 0-100 % je len ~358 USD.

  • job_description_length: koef. ≈ -0.38, p ≈ 0.51 - nevýznamné, dĺžka textu s platom nesúvisí.

  • benefits_score: koef. ≈ 264, p ≈ 0.25 - mierne +, ale nevýznamné v tomto modeli.

  • R² ≈ 0.544 - model vysvetľuje ~54 % variability, zvyšok sú iné faktory (pozícia, firma, krajina, odvetvie).


21.3 Skutočný vs. predikovaný plat

Komentár k grafu:

  • X = predikované platy, Y = skutočné platy.
  • Body sú okolo diagonály, ale s veľkým rozptylom - model zachytáva trend, no odchýlky sú často v desiatkach tisíc USD.
  • Je to očakávané, keďže plat ovplyvňujú aj faktory mimo modelu.

21.4 ACF rezíduí

Komentár k ACF grafu:

  • Lag 0 má autokoreláciu = 1 (to je vždy), ostatné lagy sú veľmi blízko nule.
  • Všetky stĺpce pre lagy 1–20 ležia vo vnútri modrých 95 % intervalov.
  • Nevidíme žiadny systémový pattern (žiadne výrazne kladné/záporné autokorelácie).
    Vizualne nepozorujeme sériovú koreláciu rezíduí.

21.5 Durbin–Watson test

## 
##  Durbin-Watson test
## 
## data:  model
## DW = 1.9778, p-value = 0.08728
## alternative hypothesis: true autocorrelation is greater than 0

Konkrétny výsledok:

  • DW štatistika ≈ 1.98,
  • p-value ≈ 0.0873, alternatíva: pozitívna autokorelácia.

Interpretácia:

  • H0: žiadna autokorelácia 1. rádu.
  • Hodnota DW ≈ 2 znamená „takmer žiadna autokorelácia“.
  • p-value 0.087 > 0.05 → H0 nezamietame na 5 % hladine významnosti.
    Nemáme dôkaz pozitívnej autokorelácie 1. rádu v reziduách.

21.6 Breusch–Godfrey test (autokorelácia vyššieho rádu)

## 
##  Breusch-Godfrey test for serial correlation of order up to 4
## 
## data:  model
## LM test = 4.8091, df = 4, p-value = 0.3074

Konkrétny výsledok:

  • LM test ≈ 4.81, df = 4,
  • p-value ≈ 0.307.

Interpretácia:

  • H0: žiadna autokorelácia rezíduí až do 4. rádu.
  • p-value 0.307 > 0.05 → H0 nezamietame.
    → ani pre lagy 1–4 nevidíme štatisticky významnu sériovú koreláciu rezíduí.

22 Celkové zhrnutie

  • Dáta obsahujú 15 000 AI jobov s veľkým rozptylom platov (32k–399k USD).
  • Najsilnejší driver platu je jednoznačne počet rokov skúseností (cca +8k USD za rok).
  • Remote podiel, dĺžka popisu a skóre benefitov majú v lineárnom modeli zanedbateľný alebo štatisticky nevýznamny vplyv na mzdu.
  • Zhluková analýza (k = 3) rozdeľuje joby zhruba na:
    • senior/high-pay pozície,
    • junior/medior pozície s lepšími benefitmi,
    • junior/medior pozície so slabšími benefitmi.
  • Testy autokorelácie (ACF, Durbin–Watson, Breusch–Godfrey) ukazujú, že reziduá modelu neprejavujú štatisticky významnu sériovú koreláciu.
    → Predpoklad nezávislosti chýb z hľadiska autokorelácie je splnený.

23 Načítanie balíkov a dát

## 'data.frame':    15000 obs. of  4 variables:
##  $ salary_usd            : int  90376 61895 152626 80215 54624 123574 79670 70640 160710 102557 ...
##  $ years_experience      : int  9 1 2 7 0 7 3 0 7 5 ...
##  $ job_description_length: int  1076 1268 1974 1345 1989 819 1936 1286 551 2340 ...
##  $ benefits_score        : num  5.9 5.2 9.4 8.6 6.6 5.9 6.3 7.6 9.3 5.8 ...
##    salary_usd     years_experience job_description_length benefits_score  
##  Min.   : 32519   Min.   : 0.000   Min.   : 500           Min.   : 5.000  
##  1st Qu.: 70180   1st Qu.: 2.000   1st Qu.:1004           1st Qu.: 6.200  
##  Median : 99705   Median : 5.000   Median :1512           Median : 7.500  
##  Mean   :115349   Mean   : 6.253   Mean   :1503           Mean   : 7.504  
##  3rd Qu.:146409   3rd Qu.:10.000   3rd Qu.:2000           3rd Qu.: 8.800  
##  Max.   :399095   Max.   :19.000   Max.   :2499           Max.   :10.000

24 Špecifikácia a odhad regresného modelu

## 
## Call:
## lm(formula = salary_usd ~ years_experience + job_description_length + 
##     benefits_score, data = udaje)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -128732  -24846   -5943   18906  253426 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)            63808.8073  1987.7034  32.102   <2e-16 ***
## years_experience        8014.5768    59.9201 133.754   <2e-16 ***
## job_description_length    -0.3749     0.5768  -0.650    0.516    
## benefits_score           264.7793   229.0359   1.156    0.248    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 40700 on 14996 degrees of freedom
## Multiple R-squared:  0.544,  Adjusted R-squared:  0.544 
## F-statistic:  5964 on 3 and 14996 DF,  p-value: < 2.2e-16
  • years_experience → jediná významná premenná.
  • job_description_length → nevýznamná.
  • benefits_score → nevýznamná.
  • Model vysvetľuje ~54 % variability mzdy.

25 Korelačná matica

##                        years_experience job_description_length benefits_score
## years_experience                  1.000                 -0.008         -0.007
## job_description_length           -0.008                  1.000          0.007
## benefits_score                   -0.007                  0.007          1.000
  • Korelácie sú takmer 0.
  • Premenné spolu nesúvisia.
  • Neexistuje riziko multikolinearity.

26 Scatterplotová matica

- Viditeľné pásy = premenné nie sú medzi sebou lineárne prepojené. - Nepozorujeme žiadny vzťah medzi vysvetľujúcimi premennými. - Graficky potvrdené: žiadna multikolinearita.

27 VIF

##       years_experience job_description_length         benefits_score 
##               1.000109               1.000101               1.000098
  • VIF ≈ 1 pre všetky premenné.
  • Multikolinearita určite neexistuje.

28 Condition Number

## [1] 570.4547
  • CN ~570 kvôli rozdielnym jednotkám premenných.
  • Nejde o skutočnú multikolinearitu.

29 Škálovanie premenných

## 
## Call:
## lm(formula = salary_usd ~ years_experience_s + job_description_length_s + 
##     benefits_score_s, data = udaje_scaled)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -128732  -24846   -5943   18906  253426 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)              115349.0      332.3 347.150   <2e-16 ***
## years_experience_s        44447.0      332.3 133.754   <2e-16 ***
## job_description_length_s   -216.0      332.3  -0.650    0.516    
## benefits_score_s            384.2      332.3   1.156    0.248    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 40700 on 14996 degrees of freedom
## Multiple R-squared:  0.544,  Adjusted R-squared:  0.544 
## F-statistic:  5964 on 3 and 14996 DF,  p-value: < 2.2e-16
##       years_experience_s job_description_length_s         benefits_score_s 
##                 1.000109                 1.000101                 1.000098
## [1] 1.011031
  • Výsledky regresie sú rovnaké.
  • VIF ≈ 1 aj po škálovaní.
  • CN ≈ 1 → úplný dôkaz, že multikolinearita nie je prítomná.

30 Zhrnutie

Model nepreukázal žiadnu multikolinearitu podľa VIF ani Condition Number po škálovaní. Roky skúseností sú štatisticky významným determinantom mzdy.