NT kainų augimo Lietuvoje 2020–2024 m. dinamika

Įvadas¶

Lietuvoje nekilnojamojo turto (NT) rinka pastaraisiais metais išgyveno reikšmingus pokyčius. Laikotarpiu nuo 2020 iki 2024 metų būsto kainos augo daugelyje regionų, kartu su tuo keitėsi ir ekonominė, bei demografinė situacija. Augantis darbo užmokestis, gyventojų skaičiaus pokyčiai, infliacija ir pinigų politikos veiksniai, tokie kaip palūkanų normos, darė tiesioginę įtaką NT kainų dinamikai.

NT įsigijimas yra vienas svarbiausių gyventojų finansinių sprendimų, todėl svarbu suprasti, kokie veiksniai lemia kainų pokyčius skirtinguose Lietuvos regionuose bei NT segmentuose (butuose ir individualiuose namuose).

Tikslas¶

Įvertinti, kokie veiksniai labiausiai prisidėjo prie NT kainų augimo Lietuvoje 2020–2024 metais. Išanalizuoti NT kainų kitimą pagal regionus ir NT tipus, bei nustatyti ryšį tarp šių kainų ir tokių veiksnių kaip gyventojų skaičius, infliacija, darbo užmokestis bei palūkanų normos.

Hipotezės¶

  • H1: Didmiesčiai išsiskiria aukštesniu NT kainų lygiu, palyginti su mažesniais miestais.
  • H2: NT kainų augimo tempas Lietuvoje buvo didesnis daugiabučiuose nei nuosavuose namuose.
  • H3: Regionuose, kur gyventojų skaičius augo.
  • H4: Didėjanti infliacija teigiamai koreliuoja su NT kainų augimu – kainos kyla infliacijai augant.
  • H5: Augančios būsto paskolų palūkanų normos sulėtina NT kainų augimą arba jį stabilizuoja.

Metodologija¶

Tyrimas grindžiamas statistinių duomenų analize naudojant Python ir pandas biblioteką. Naudojami duomenys:

  • NT kainos pagal metus, regionus ir segmentus
  • Gyventojų skaičius pagal regionus
  • Vidutinis darbo užmokestis
  • Metinė infliacija
  • Paskolų palūkanų normos

Atliekami skaičiavimai: kainų pokyčio procentai, koreliacijos, laiko eilučių analizė, regionų palyginimai.

Duomenų apdorojimas, modulių įkėlimas:¶

In [2]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
In [16]:
NT_kainos = pd.read_csv("NT_kainos_2019_2024.csv")
NT_kainos
Out[16]:
Metai Regionas Tipas Vidutine_kaina_EUR Vidutine_kaina_EUR_m2
0 2019 Lietuvos Respublika Vieno ir dviejų būstų pastatai 61587.59 487.59
1 2020 Lietuvos Respublika Vieno ir dviejų būstų pastatai 65651.53 539.53
2 2021 Lietuvos Respublika Vieno ir dviejų būstų pastatai 72600.17 598.19
3 2022 Lietuvos Respublika Vieno ir dviejų būstų pastatai 85361.67 734.62
4 2023 Lietuvos Respublika Vieno ir dviejų būstų pastatai 84620.90 745.89
... ... ... ... ... ...
79 2024 Kauno m. sav. Butas daugiabučiuose namuose 90061.18 1765.61
80 2024 Klaipėdos m. sav. Butas daugiabučiuose namuose 74861.03 1504.46
81 2024 Panevėžio m. sav. Butas daugiabučiuose namuose 47304.66 989.71
82 2024 Šiaulių m. sav. Butas daugiabučiuose namuose 51600.05 1073.82
83 2024 Vilniaus m. sav. Butas daugiabučiuose namuose 132811.22 2651.95

84 rows × 5 columns

NT kainų kitimas skirtinguose Lietuvos miestuose 2020–2024 m.¶

In [47]:
df_filtered = NT_kainos[
    (NT_kainos["Metai"] >= 2020) &
    (NT_kainos["Tipas"].isin(["Butas daugiabučiuose namuose", "Vieno ir dviejų būstų pastatai"])) &
    (NT_kainos["Regionas"] != "Lietuvos Respublika")
]
In [48]:
region_summary = df_filtered.groupby(["Regionas", "Tipas"])["Vidutine_kaina_EUR_m2"].mean().reset_index()
plt.figure(figsize=(14, 7))
sns.barplot(data=region_summary, x="Regionas", y="Vidutine_kaina_EUR_m2", hue="Tipas")

plt.title("Butų ir namų vidutinės kainos pagal regionus (€/m²), 2020–2024 m.")
plt.xlabel("Regionas")
plt.ylabel("Vidutinė kaina €/m²")
plt.xticks(rotation=45, ha='right')
plt.legend(title="NT tipas")
plt.grid(True, axis="y")
plt.tight_layout()
plt.show()
No description has been provided for this image
In [ ]:
 

Butų kainų pokytis regionuose (€/m²), 2020–2024 m.¶

In [17]:
NT_kainos_filtered = NT_kainos.loc[
    (NT_kainos["Metai"] >= 2020) &
    (NT_kainos["Tipas"] == "Butas daugiabučiuose namuose") &
    (NT_kainos["Regionas"] != "Lietuvos Respublika")]
NT_kainos
Out[17]:
Metai Regionas Tipas Vidutine_kaina_EUR Vidutine_kaina_EUR_m2
0 2019 Lietuvos Respublika Vieno ir dviejų būstų pastatai 61587.59 487.59
1 2020 Lietuvos Respublika Vieno ir dviejų būstų pastatai 65651.53 539.53
2 2021 Lietuvos Respublika Vieno ir dviejų būstų pastatai 72600.17 598.19
3 2022 Lietuvos Respublika Vieno ir dviejų būstų pastatai 85361.67 734.62
4 2023 Lietuvos Respublika Vieno ir dviejų būstų pastatai 84620.90 745.89
... ... ... ... ... ...
79 2024 Kauno m. sav. Butas daugiabučiuose namuose 90061.18 1765.61
80 2024 Klaipėdos m. sav. Butas daugiabučiuose namuose 74861.03 1504.46
81 2024 Panevėžio m. sav. Butas daugiabučiuose namuose 47304.66 989.71
82 2024 Šiaulių m. sav. Butas daugiabučiuose namuose 51600.05 1073.82
83 2024 Vilniaus m. sav. Butas daugiabučiuose namuose 132811.22 2651.95

84 rows × 5 columns

In [19]:
pivot = NT_kainos_filtered.pivot(index="Metai", columns="Regionas", values="Vidutine_kaina_EUR_m2")
In [20]:
summary = pivot.describe().T[["mean", "min", "max"]].round(2)
summary = summary.rename(columns={
    "mean": "Vid. kaina €/m²",
    "min": "Min. kaina €/m²",
    "max": "Maks. kaina €/m²"
})
In [21]:
print("NT kainų pokyčiai (€/m²) skirtinguose regionuose 2020–2024 m.:")
print(summary)
NT kainų pokyčiai (€/m²) skirtinguose regionuose 2020–2024 m.:
                   Vid. kaina €/m²  Min. kaina €/m²  Maks. kaina €/m²
Regionas                                                             
Alytaus m. sav.             745.66           553.49            870.75
Kauno m. sav.              1442.59          1042.66           1765.61
Klaipėdos m. sav.          1298.44          1054.28           1504.46
Panevėžio m. sav.           863.63           655.83            989.71
Vilniaus m. sav.           2227.29          1729.94           2651.95
Šiaulių m. sav.             949.50           746.19           1073.82
In [101]:
pivot.index = pivot.index.astype(int)

plt.figure(figsize=(12, 6))
for region in pivot.columns:
    plt.plot(pivot.index, pivot[region], marker='o', label=region)

plt.title("Butų kainų pokytis regionuose (€/m²), 2020–2024 m.")
plt.xlabel("Metai")
plt.ylabel("Vidutinė kaina €/m²")
plt.xticks(pivot.index)
plt.grid(True)
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))
plt.tight_layout()
plt.show()
No description has been provided for this image
In [ ]:
 

Namų kainų (€/m²) pokytį skirtinguose Lietuvos regionuose 2020–2024 m.¶

In [25]:
NT_kainos_namai = NT_kainos.loc[
    (NT_kainos["Metai"] >= 2020) &
    (NT_kainos["Tipas"] == "Vieno ir dviejų būstų pastatai") &
    (NT_kainos["Regionas"] != "Lietuvos Respublika")
]
NT_kainos_namai.head(10)
Out[25]:
Metai Regionas Tipas Vidutine_kaina_EUR Vidutine_kaina_EUR_m2
6 2020 Alytaus m. sav. Vieno ir dviejų būstų pastatai 67508.85 407.62
7 2021 Alytaus m. sav. Vieno ir dviejų būstų pastatai 90131.31 544.75
8 2022 Alytaus m. sav. Vieno ir dviejų būstų pastatai 80127.50 555.63
9 2023 Alytaus m. sav. Vieno ir dviejų būstų pastatai 101707.49 670.88
11 2020 Kauno m. sav. Vieno ir dviejų būstų pastatai 105975.39 852.89
12 2021 Kauno m. sav. Vieno ir dviejų būstų pastatai 121116.84 946.91
13 2022 Kauno m. sav. Vieno ir dviejų būstų pastatai 143139.18 1198.65
14 2023 Kauno m. sav. Vieno ir dviejų būstų pastatai 158800.75 1432.79
16 2020 Klaipėdos m. sav. Vieno ir dviejų būstų pastatai 118193.04 850.93
17 2021 Klaipėdos m. sav. Vieno ir dviejų būstų pastatai 132920.34 997.54
In [26]:
pivot_namai = NT_kainos_namai.pivot(index="Metai", columns="Regionas", values="Vidutine_kaina_EUR_m2")
In [27]:
summary_namai = pivot_namai.describe().T[["mean", "min", "max"]].round(2)
summary_namai = summary_namai.rename(columns={
    "mean": "Vid. kaina €/m²",
    "min": "Min. kaina €/m²",
    "max": "Maks. kaina €/m²"
})
In [28]:
print("NAMŲ kainų pokyčiai (€/m²) skirtinguose regionuose 2020–2024 m.:")
summary_namai
NAMŲ kainų pokyčiai (€/m²) skirtinguose regionuose 2020–2024 m.:
Out[28]:
Vid. kaina €/m² Min. kaina €/m² Maks. kaina €/m²
Regionas
Alytaus m. sav. 574.65 407.62 694.36
Kauno m. sav. 1182.84 852.89 1482.94
Klaipėdos m. sav. 1156.33 850.93 1394.40
Panevėžio m. sav. 751.60 626.64 851.20
Vilniaus m. sav. 1481.64 1126.82 1789.73
Šiaulių m. sav. 815.75 621.48 993.04
In [102]:
plt.figure(figsize=(12, 6))
for region in pivot_namai.columns:
    plt.plot(pivot_namai.index, pivot_namai[region], marker='o', label=region)

plt.title("Namų kainų pokytis regionuose (€/m²), 2020–2024 m.")
plt.xlabel("Metai")
plt.ylabel("Vidutinė kaina €/m²")
plt.xticks(pivot_namai.index) 
plt.grid(True)
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))
plt.tight_layout()
plt.show()
No description has been provided for this image
In [42]:
butai_namai_LT = NT_kainos[
    (NT_kainos["Regionas"] == "Lietuvos Respublika") &
    (NT_kainos["Metai"].isin([2020, 2024])) &
    (NT_kainos["Tipas"].isin(["Butas daugiabučiuose namuose", "Vieno ir dviejų būstų pastatai"]))
]
In [43]:
kainos = butai_namai_LT.pivot(index="Tipas", columns="Metai", values="Vidutine_kaina_EUR_m2")
In [44]:
kainos["Augimas %"] = ((kainos[2024] - kainos[2020]) / kainos[2020] * 100).round(2)
kainos[["Augimas %"]]
Out[44]:
Metai Augimas %
Tipas
Butas daugiabučiuose namuose 51.46
Vieno ir dviejų būstų pastatai 43.09
In [127]:
df_plot = kainos[[2020, 2024]].reset_index().melt(id_vars="Tipas", var_name="Metai", value_name="Kaina")


plt.figure(figsize=(8, 6))
sns.barplot(data=df_plot, x="Tipas", y="Kaina", hue="Metai", palette="Set2")

plt.title("Butų ir namų kainų pokytis Lietuvoje (€/m²): 2020 vs 2024")
plt.ylabel("Vidutinė kaina (€/m²)")
plt.xlabel("NT tipas")
plt.grid(axis="y")
plt.tight_layout()
plt.show()
No description has been provided for this image
In [ ]:
 

Gyventojų Skaičiaus Ir NT Kainos Koreliacija¶

In [ ]:
 
In [149]:
gyventojai_df = pd.read_csv("gyventoju_skaicius.csv", encoding="utf-8")
In [193]:
gyventojai_df["Regionas"] = gyventojai_df["Regionas"].str.strip()
bendriniai_regionai = [
    "LietuvosRespublika",
    "Sostinėsregionas",
    "VidurioirvakarųLietuvosregionas"
]

gyventojai_filtered = gyventojai_df[
    (gyventojai_df["Metai"] >= 2020) &
    (gyventojai_df["Tipas"] == "Miestas ir kaimas") &
    (~gyventojai_df["Regionas"].isin(bendriniai_regionai))
][["Metai", "Regionas", "Skaicius"]].copy()
gyventojai_filtered
Out[193]:
Metai Regionas Skaicius
201 2020 Vilniausapskritis 804348
207 2020 Alytausapskritis 139041
210 2020 Kaunoapskritis 567106
213 2020 Klaipėdosapskritis 320684
216 2020 Marijampolėsapskritis 139746
219 2020 Panevėžioapskritis 218237
222 2020 Šiauliųapskritis 263895
225 2020 Tauragėsapskritis 94026
228 2020 Telšiųapskritis 134133
231 2020 Utenosapskritis 128761
240 2021 Vilniausapskritis 810797
246 2021 Alytausapskritis 137741
249 2021 Kaunoapskritis 569571
252 2021 Klaipėdosapskritis 322283
255 2021 Marijampolėsapskritis 138292
258 2021 Panevėžioapskritis 216233
261 2021 Šiauliųapskritis 262220
264 2021 Tauragėsapskritis 92667
267 2021 Telšiųapskritis 133376
270 2021 Utenosapskritis 127581
279 2022 Vilniausapskritis 817950
285 2022 Alytausapskritis 135703
288 2022 Kaunoapskritis 569566
291 2022 Klaipėdosapskritis 324263
294 2022 Marijampolėsapskritis 136429
297 2022 Panevėžioapskritis 212714
300 2022 Šiauliųapskritis 261145
303 2022 Tauragėsapskritis 90893
306 2022 Telšiųapskritis 131691
309 2022 Utenosapskritis 125644
318 2023 Vilniausapskritis 848724
324 2023 Alytausapskritis 135620
327 2023 Kaunoapskritis 579903
330 2023 Klaipėdosapskritis 334281
333 2023 Marijampolėsapskritis 135787
336 2023 Panevėžioapskritis 211377
339 2023 Šiauliųapskritis 264056
342 2023 Tauragėsapskritis 90617
345 2023 Telšiųapskritis 131447
348 2023 Utenosapskritis 125467
357 2024 Vilniausapskritis 868251
363 2024 Alytausapskritis 134181
366 2024 Kaunoapskritis 585430
369 2024 Klaipėdosapskritis 339831
372 2024 Marijampolėsapskritis 134663
375 2024 Panevėžioapskritis 209093
378 2024 Šiauliųapskritis 266803
381 2024 Tauragėsapskritis 90534
384 2024 Telšiųapskritis 130913
387 2024 Utenosapskritis 126192
396 2025 Vilniausapskritis 876727
402 2025 Alytausapskritis 132919
405 2025 Kaunoapskritis 587511
408 2025 Klaipėdosapskritis 343862
411 2025 Marijampolėsapskritis 133360
414 2025 Panevėžioapskritis 207017
417 2025 Šiauliųapskritis 266736
420 2025 Tauragėsapskritis 89946
423 2025 Telšiųapskritis 129884
426 2025 Utenosapskritis 122702
In [158]:
plt.figure(figsize=(12, 6))
sns.lineplot(
    data=gyventojai_filtered,
    x="Metai",
    y="Skaicius",
    hue="Regionas",
    style="Regionas",
    markers=True,
    dashes=False,
    palette="tab10"
)

plt.title("Gyventojų skaičiaus kitimas pagal regionus (2020–2024 m.) – Linijinis grafikas")
plt.xlabel("Metai")
plt.ylabel("Gyventojų skaičius")
plt.grid(True)
plt.tight_layout()
plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left', title="Regionas")
plt.show()
No description has been provided for this image
In [175]:
nt_kainos_df = pd.read_csv("NT_kainos_2019_2024.csv", encoding="utf-8")
nt_kainos_df["Regionas"] = nt_kainos_df["Regionas"].str.strip()

bendriniai_regionai = [
    "LietuvosRespublika",
    "Sostinėsregionas",
    "VidurioirvakarųLietuvosregionas"
]
nt_kainos_df = nt_kainos_df[~nt_kainos_df["Regionas"].isin(bendriniai_regionai)]
nt_visi = nt_kainos_df[
    (nt_kainos_df["Metai"] >= 2020)
][["Metai", "Regionas", "Vidutine_kaina_EUR_m2"]].copy()

region_map = {
    "Vilniausapskritis": "Vilniaus m. sav.",
    "Kaunoapskritis": "Kauno m. sav.",
    "Klaipėdosapskritis": "Klaipėdos m. sav.",
    "Panevėžioapskritis": "Panevėžio m. sav.",
    "Šiauliųapskritis": "Šiaulių m. sav.",
    "Alytausapskritis": "Alytaus m. sav.",
}

gyventojai_filtered["Regionas"] = gyventojai_filtered["Regionas"].replace(region_map)

sujungta_visi = pd.merge(nt_visi, gyventojai_filtered, on=["Metai", "Regionas"]).dropna()
sujungta_visi

korelacija_visi = sujungta_visi[["Vidutine_kaina_EUR_m2", "Skaicius"]].corr().iloc[0, 1].round(3)
print(f"Koreliacija tarp NT kainų (visi tipai) ir gyventojų skaičiaus: r = {korelacija_visi}")
Koreliacija tarp NT kainų (visi tipai) ir gyventojų skaičiaus: r = 0.821
In [174]:
plt.figure(figsize=(10, 7))

sns.scatterplot(
    data=sujungta_visi,
    x="Skaicius",
    y="Vidutine_kaina_EUR_m2",
    hue="Metai",
    palette="viridis",
    s=100,
    alpha=0.9,
    marker="o",
    legend="brief")

sns.regplot(
    data=sujungta_visi,
    x="Skaicius",
    y="Vidutine_kaina_EUR_m2",
    scatter=False,
    color="orange",
    line_kws={"linewidth": 2})

plt.title(f"Gyventojų skaičiaus ir NT kainos koreliacija: r = {korelacija_visi}")
plt.xlabel("Gyventojų skaičius")
plt.ylabel("Vidutinė NT kaina (€/m²)")
plt.grid(True)
plt.tight_layout()
plt.legend(title="Metai", bbox_to_anchor=(1.05, 1), loc='upper left')
plt.show()
No description has been provided for this image
In [ ]:
 

Vidutinis mėnesinis darbo užmokestis¶

In [187]:
uzmokestis_df = pd.read_csv("LT_Vidutinis_Uzmokestis_2020_2024.csv", encoding="utf-8", index_col=0)
In [194]:
uzmokestis_vidurkiai = uzmokestis_df.groupby("Metai")[["Bruto_EUR", "Neto_EUR"]].mean().round(2)
uzmokestis_vidurkiai
Out[194]:
Bruto_EUR Neto_EUR
Metai
2020 1439.62 915.90
2021 1590.30 1007.97
2022 1802.42 1128.68
2023 2022.12 1253.70
2024 2232.80 1373.68
In [189]:
uzmokestis_nt_sujungta = pd.merge(uzmokestis_vidurkiai, nt_vidurkiai, on="Metai", how="inner")
In [191]:
fig, ax1 = plt.subplots(figsize=(10, 6))

ax1.set_xlabel("Metai")
ax1.set_ylabel("Vidutinė NT kaina (€/m²)", color="tab:blue")
ax1.plot(uzmokestis_nt_sujungta["Metai"], uzmokestis_nt_sujungta["Vidutine_kaina_EUR_m2"],
         marker='o', color="tab:blue", label="NT kaina")
ax1.tick_params(axis='y', labelcolor="tab:blue")
ax1.set_xticks(uzmokestis_nt_sujungta["Metai"])  

ax2 = ax1.twinx()
ax2.set_ylabel("Vidutinis bruto atlyginimas (€/mėn.)", color="tab:red")
ax2.plot(uzmokestis_nt_sujungta["Metai"], uzmokestis_nt_sujungta["Bruto_EUR"],
         marker='s', linestyle='--', color="tab:red", label="Bruto atlyginimas")
ax2.tick_params(axis='y', labelcolor="tab:red")

plt.title("NT kainos ir vidutinio bruto atlyginimo dinamika (2020–2024 m.)")
plt.grid(True)
fig.tight_layout()
plt.show()
No description has been provided for this image
In [ ]:
 

Vidutinė NT kaina ir infliacija Lietuvoje¶

In [195]:
infliacija_df = pd.read_csv("Infliacija.csv", encoding="utf-8", index_col=0)
infliacija_df.head(10)
Out[195]:
Regionas Infliacija_procentais
Metai
2020 Lietuvos Respublika 0.2
2020 Alytaus m. sav. 0.2
2020 Kauno m. sav. 0.2
2020 Klaipėdos m. sav. 0.2
2020 Panevėžio m. sav. 0.2
2020 Šiaulių m. sav. 0.2
2020 Vilniaus m. sav. 0.2
2021 Lietuvos Respublika 10.6
2021 Alytaus m. sav. 10.6
2021 Kauno m. sav. 10.6
In [61]:
NT_kainos = NT_kainos[~NT_kainos["Regionas"].isin(["Lietuvos Respublika", "Sostinės regionas"])]
In [62]:
nt_all = NT_kainos[
    (NT_kainos["Metai"] >= 2020)
][["Metai", "Vidutine_kaina_EUR_m2"]].groupby("Metai").mean().reset_index()
In [63]:
infliacija_filtered = infliacija_df[
    (infliacija_df["Metai"] >= 2020)
][["Metai", "Infliacija_procentais"]]
In [64]:
sujungta = pd.merge(nt_all, infliacija_filtered, on="Metai")
In [100]:
fig, ax1 = plt.subplots(figsize=(10, 6))

color = "tab:blue"
ax1.set_xlabel("Metai")
ax1.set_ylabel("Vidutinė NT kaina (€/m²)", color=color)
ax1.plot(sujungta["Metai"], sujungta["Vidutine_kaina_EUR_m2"], marker='o', color=color)
ax1.tick_params(axis='y', labelcolor=color)

ax1.set_xticks(sujungta["Metai"])
ax1.set_xticklabels(sujungta["Metai"].astype(int))

ax2 = ax1.twinx()
color = "tab:red"
ax2.set_ylabel("Metinė infliacija (%)", color=color)
ax2.plot(sujungta["Metai"], sujungta["Infliacija_procentais"], marker='s', linestyle='--', color=color)
ax2.tick_params(axis='y', labelcolor=color)

plt.title("NT kainų ir infliacijos dinamika Lietuvoje (2020–2024 m.)")
plt.grid(True)
fig.tight_layout()
plt.show()
No description has been provided for this image
In [ ]:
 

NT kainos ir būsto paskolų palūkanų normos¶

In [204]:
paskolu_df = pd.read_excel("t-pinigu-finansu-istaigu-paskolu-ir-indeliu-palukanu-normos-1.xlsx", sheet_name=0,index_col=0)
In [205]:
paskolu_df.columns = paskolu_df.columns.astype(str)
paskolu_df = paskolu_df.rename(columns=lambda x: x.strip())
paskolu_df = paskolu_df.rename(columns={paskolu_df.columns[0]: "Rodiklis"})
In [82]:
paskolos_ilgam = paskolu_df.iloc[3, 1:]
df_palukanu = pd.DataFrame({
    "Data": paskolos_ilgam.index.astype(str),
    "Palukanu_norma_proc": paskolos_ilgam.values
})
In [83]:
df_palukanu["Data"] = df_palukanu["Data"].str.replace(" ", "", regex=False)
df_palukanu["Data"] = pd.to_datetime(df_palukanu["Data"], format="%Y-%m", errors="coerce")
In [89]:
df_palukanu["Metai"] = df_palukanu["Data"].dt.year
df_palukanu = df_palukanu.dropna(subset=["Data"])
busto_palukanu_metai = df_palukanu.groupby("Metai")["Palukanu_norma_proc"].mean().reset_index()

busto_palukanu_2020_2024 = busto_palukanu_metai[busto_palukanu_metai["Metai"].between(2020, 2024)]
busto_palukanu_2020_2024
Out[89]:
Metai Palukanu_norma_proc
1 2020 1.885
2 2021 1.91
3 2022 2.340833
4 2023 5.1925
5 2024 5.665
In [92]:
NT_kainos = NT_kainos[~NT_kainos["Regionas"].isin(["Lietuvos Respublika", "Sostinės regionas"])]
nt_all = NT_kainos[NT_kainos["Metai"].between(2020, 2024)]
nt_vidurkiai = nt_all.groupby("Metai")["Vidutine_kaina_EUR_m2"].mean().reset_index()
nt_ir_palukanu = pd.merge(nt_vidurkiai, busto_palukanu_2020_2024, on="Metai")
nt_ir_palukanu
Out[92]:
Metai Vidutine_kaina_EUR_m2 Palukanu_norma_proc
0 2020 855.730833 1.885
1 2021 981.204167 1.91
2 2022 1158.950000 2.340833
3 2023 1286.410833 5.1925
4 2024 1338.497500 5.665
In [97]:
fig, ax1 = plt.subplots(figsize=(10, 6))

ax1.set_xlabel("Metai")
ax1.set_ylabel("Vidutinė NT kaina (€/m²)", color="tab:blue")
ax1.plot(nt_ir_palukanu["Metai"], nt_ir_palukanu["Vidutine_kaina_EUR_m2"],
         marker='o', color="tab:blue", label="NT kaina")
ax1.tick_params(axis='y', labelcolor="tab:blue")

ax1.set_xticks(nt_ir_palukanu["Metai"])
ax1.set_xticklabels(nt_ir_palukanu["Metai"])


ax2 = ax1.twinx()
ax2.set_ylabel("Palūkanų norma (%)", color="tab:red")
ax2.plot(nt_ir_palukanu["Metai"], nt_ir_palukanu["Palukanu_norma_proc"],
         marker='s', linestyle='--', color="tab:red", label="Palūkanos")
ax2.tick_params(axis='y', labelcolor="tab:red")

plt.title("NT kainų ir būsto paskolų palūkanų normos dinamika (2020–2024 m.)")
plt.grid(True)
plt.tight_layout()
plt.show()
No description has been provided for this image

Išvados¶

  • Nuo 2020 iki 2024 metų NT kainos Lietuvoje nuosekliai augo visose savivaldybėse, tačiau augimo tempai skyrėsi priklausomai nuo regiono. Didžiausias kainų augimas fiksuotas Vilniuje, Kaune ir Klaipėdoje, kur butų kainos 2024 m. viršijo 2000 €/m² (pvz., Vilniuje – iki 2651.95 €/m²). Mažesni regioniniai miestai, tokie kaip Alytus, Šiauliai ar Panevėžys, išlaikė žemesnį kainų lygį – dažniausiai tarp 700–1000 €/m². Bendra kainų augimo tendencija buvo teigiama, ypač 2021–2022 metais, kai fiksuotas sparčiausias kilimas. Ši analizė rodo, kad NT rinka labiau aktyvi ir brangesnė didžiuosiuose miestuose, o regionai pasižymėjo lėtesniu, bet vis dar augančiu NT kainų lygiu.
  • Butų kainos augo sparčiau – +51.46 %, nei Namų segmentas – +43.09 %
  • NT kainų ir gyventojų skaičiaus duomenų koreliacijos analizė parodė labai stiprų teigiamą ryšį (r = 0.821).

Tai reiškia, kad NT kainos yra glaudžiai susijusios su regiono gyventojų skaičiumi – regionuose, kuriuose gyvena daugiau žmonių, vidutinės NT kainos yra reikšmingai aukštesnės.

  • 2021–2022 m. abu rodikliai kilo, tačiau kainų augimas tęsėsi ir 2023–2024 m., kai infliacija mažėjo. Tai rodo, kad NT kainų dinamika nepriklauso tiesiogiai nuo metinės infliacijos, o priklauso nuo kitų veiksnių.
  • Nuo 2020 iki 2022 metų NT kainos kilo sparčiai. Net ir 2023–2024 m., kai palūkanų normos buvo aukštos, kainos išliko aukštos arba kilo lėčiau.

Tai rodo stiprią paklausą arba ribotą pasiūlą NT rinkoje. Palūkanų normos išaugo reikšmingai: Iki 2022 m. jos buvo stabiliai žemos. Hipotezė nepasitvirtino tiesiogiai. Aukštesnės palūkanos ne iš karto paveikė kainas, galimas atidėtas efektas.

In [ ]: