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:
Základná charakteristika datasetu
| 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 | ▇▇▇▇▇ |
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é.
Interpretácia: Vidíme tvar rozdelenia (pravostranný chvost pri vysokých mzdách); dôležité je, kde leží jadro rozdelenia (typický plat).
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.
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.
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í.
## 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.
##
## 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é.
| Ú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.
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.
## 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
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.
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
years_experience ukazuje, o koľko sa priemerný plat zmení pri zvýšení skúseností o 1 rok.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
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).Ak má model2 vyššie Adjusted R², znamená to, že pridanie ďalších premenných zlepšilo vysvetľovaciu silu modelu.
## 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é.
## 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.
Komentár:
Mzdy sú silne šikmé, čo naznačuje potrebu logaritmickej transformácie. Roky praxe majú normálnejšie rozdelenie.
Komentár:
Transformácia prebehla správne. log_salary je pripravené na regresiu.
##
## 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.
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.
##
## 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ší.
##
## 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.
##
## 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.
## 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ú.
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. |
## 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:
remote_ratio ≈ 0.014,
job_description_length ≈ -0.009,
benefits_score ≈ 0.001Cieľ: rozdeliť pracovné ponuky na prirodzené skupiny podľa číselných vlastností.
## [1] 15000
Komentár k príprave:
Komentár k Elbow grafu:
##
## 1 2 3
## 5555 4076 5369
Komentár k veľkosti klastrov:
table) sú:
Komentár k priemerom v klastroch:
Z tabuľky cluster_means vidíme:
salary_usd aj years_experience - ide o senior / high-pay pozície.benefits_score:
remote_ratio a job_description_length sa líšia len mierne - nie sú hlavný driver klastrov.## 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:
posting_date, aby malo testovanie autokorelácie rezíduí nejakú časovú logiku.salary_usd, years_experience, remote_ratio, job_description_length a benefits_score je rovnaké ako v úvodnej deskriptíve.##
## 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).
Komentár k grafu:
Komentár k ACF grafu:
##
## Durbin-Watson test
##
## data: model
## DW = 1.9778, p-value = 0.08728
## alternative hypothesis: true autocorrelation is greater than 0
Konkrétny výsledok:
Interpretácia:
##
## 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:
Interpretácia:
## '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
##
## 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 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
- 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.
## years_experience job_description_length benefits_score
## 1.000109 1.000101 1.000098
## [1] 570.4547
##
## 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
Model nepreukázal žiadnu multikolinearitu podľa VIF ani Condition Number po škálovaní. Roky skúseností sú štatisticky významným determinantom mzdy.