In [14]:
# Numerická a aplikovaná matematika - regresná analýza
# Vývoj priemernej hrubej mzdy na Slovensku podľa údajov štatistického úradu SR.
# Priemerné hrubé mzdy v r. 2022 (podľa Eurostat): Euro zóna: 2640 EUR - červená farba
# EU 2576 EUR - čierna farba, Európa: 2155 EUR (EU + ďalšie krajiny Albánsko, Ukrajina atď.) 
# Modrá (regresná) priamka - určuje kedy Slovensko pri súčastnom trende dosiahne úroveň 
# priemerných hrubých miezd EU z r. 2022.
# České priemerné mzdy sú uvedené v CZK podľa Českého štatistického úradu. Pre Český 
# štatistický úrad je dôležitá informácia medián hrubej mzdy, čo cca. o 10% je menej ako 
# priemerná hrubá mzda.
# Je potrebné tu zadať aj kurz Eur - CZK podľa Českej národnej banky, aby bolo možné vypočítať
# regresnú priamku podľa hrubej mzdy v Eur.
# Kurz ČNB Eur - CZK: 1 - 23.81 (7.2.2023).

kurz = 23.81
points = [(2016,912),(2017,954),(2018,1013),(2019,1092),(2020,1133),(2021,1211),(2022,1291)]
czmzdy = [(2019,33697),(2020,35402),(2021,37499),(2022,39858)]
czeurmzdy = [(2019,1415),(2020,1487),(2021,1575),(2022,1674)]

var("a, b, u, v, x")
model(x) = a*x + b
model2(x) = u*x + v
year=2045
    
xmin = min([points[i][0] for i in [0,1,..,len(points)-1]])
xmax = max([points[i][0] for i in [0,1,..,len(points)-1]])
p  = scatter_plot( points )
fit =  find_fit(points, model)
f(x) = model(a =fit[0].rhs(), b = fit[1].rhs())
p += plot(f(x), xmin-1, year,  frame=true, gridlines='minor', axes_labels =[ "Years","2022 average wages in EU"] )
    
fit =  find_fit(czeurmzdy, model2)
g(x) = model2(u =fit[0].rhs(), v = fit[1].rhs())
p += scatter_plot( czeurmzdy )
p += plot(g(x), xmin-1, year - 10, color = "red" )

heurope = 2155
heu = 2576
heu80 = 2061
heu60 = 1546
heuro = 2640

p += line([(2016,heurope),(year,heurope)], color = "green")
p += text("Europe 2022 = 2155 EUR", (2016,2200), color = "green", horizontal_alignment='left')
p += line([(2016,heu),(year,heu)], color = "black")
p += text("EU 2022 = 2576 EUR", (2016,2500), color = "black", horizontal_alignment='left')
p += line([(2016,heu80),(year,heu80)], color = "black")
p += text("EU80% 2022", (2037,1990), color = "black", horizontal_alignment='left')
p += line([(2016,heu60),(year,heu60)], color = "black")
p += text("EU60% 2022", (2037,1476), color = "black", horizontal_alignment='left')
p += line([(2016,heuro),(year,heuro)], color = "red")
p += text("Euro 2022 = 2640 EUR", (2016,2700), color = "red", horizontal_alignment='left')
p += text("Slovakia 2022 = 1291 EUR", (2016,1320), rotation=33.0, color = "blue", horizontal_alignment='left')
p += text("Czechia 2022 = 1674 EUR", (2016,1640), rotation=40.0, color = "red", horizontal_alignment='left')

show(p)
show(f(x))
show(g(x))