Į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:¶
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
NT_kainos = pd.read_csv("NT_kainos_2019_2024.csv")
NT_kainos
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.¶
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")
]
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()
Butų kainų pokytis regionuose (€/m²), 2020–2024 m.¶
NT_kainos_filtered = NT_kainos.loc[
(NT_kainos["Metai"] >= 2020) &
(NT_kainos["Tipas"] == "Butas daugiabučiuose namuose") &
(NT_kainos["Regionas"] != "Lietuvos Respublika")]
NT_kainos
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
pivot = NT_kainos_filtered.pivot(index="Metai", columns="Regionas", values="Vidutine_kaina_EUR_m2")
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²"
})
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
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()
Namų kainų (€/m²) pokytį skirtinguose Lietuvos regionuose 2020–2024 m.¶
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)
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 |
pivot_namai = NT_kainos_namai.pivot(index="Metai", columns="Regionas", values="Vidutine_kaina_EUR_m2")
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²"
})
print("NAMŲ kainų pokyčiai (€/m²) skirtinguose regionuose 2020–2024 m.:")
summary_namai
NAMŲ kainų pokyčiai (€/m²) skirtinguose regionuose 2020–2024 m.:
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 |
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()
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"]))
]
kainos = butai_namai_LT.pivot(index="Tipas", columns="Metai", values="Vidutine_kaina_EUR_m2")
kainos["Augimas %"] = ((kainos[2024] - kainos[2020]) / kainos[2020] * 100).round(2)
kainos[["Augimas %"]]
Metai | Augimas % |
---|---|
Tipas | |
Butas daugiabučiuose namuose | 51.46 |
Vieno ir dviejų būstų pastatai | 43.09 |
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()
Gyventojų Skaičiaus Ir NT Kainos Koreliacija¶
gyventojai_df = pd.read_csv("gyventoju_skaicius.csv", encoding="utf-8")
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
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 |
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()
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
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()
Vidutinis mėnesinis darbo užmokestis¶
uzmokestis_df = pd.read_csv("LT_Vidutinis_Uzmokestis_2020_2024.csv", encoding="utf-8", index_col=0)
uzmokestis_vidurkiai = uzmokestis_df.groupby("Metai")[["Bruto_EUR", "Neto_EUR"]].mean().round(2)
uzmokestis_vidurkiai
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 |
uzmokestis_nt_sujungta = pd.merge(uzmokestis_vidurkiai, nt_vidurkiai, on="Metai", how="inner")
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()
Vidutinė NT kaina ir infliacija Lietuvoje¶
infliacija_df = pd.read_csv("Infliacija.csv", encoding="utf-8", index_col=0)
infliacija_df.head(10)
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 |
NT_kainos = NT_kainos[~NT_kainos["Regionas"].isin(["Lietuvos Respublika", "Sostinės regionas"])]
nt_all = NT_kainos[
(NT_kainos["Metai"] >= 2020)
][["Metai", "Vidutine_kaina_EUR_m2"]].groupby("Metai").mean().reset_index()
infliacija_filtered = infliacija_df[
(infliacija_df["Metai"] >= 2020)
][["Metai", "Infliacija_procentais"]]
sujungta = pd.merge(nt_all, infliacija_filtered, on="Metai")
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()
NT kainos ir būsto paskolų palūkanų normos¶
paskolu_df = pd.read_excel("t-pinigu-finansu-istaigu-paskolu-ir-indeliu-palukanu-normos-1.xlsx", sheet_name=0,index_col=0)
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"})
paskolos_ilgam = paskolu_df.iloc[3, 1:]
df_palukanu = pd.DataFrame({
"Data": paskolos_ilgam.index.astype(str),
"Palukanu_norma_proc": paskolos_ilgam.values
})
df_palukanu["Data"] = df_palukanu["Data"].str.replace(" ", "", regex=False)
df_palukanu["Data"] = pd.to_datetime(df_palukanu["Data"], format="%Y-%m", errors="coerce")
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
Metai | Palukanu_norma_proc | |
---|---|---|
1 | 2020 | 1.885 |
2 | 2021 | 1.91 |
3 | 2022 | 2.340833 |
4 | 2023 | 5.1925 |
5 | 2024 | 5.665 |
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
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 |
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()
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.