Ana içeriğe atla

Durum Uzayı Modelleri: Nasıl Çalışırlar ve Nerelerde Kullanılırlar

Gizli durumlar ve gözlemlerle dinamik sistemleri durum uzayı modellerinin nasıl temsil ettiğini; durum ve gözlem denklemlerini, Kalman filtrelemeyi ve zaman serisi uygulamalarını öğrenin.
Güncel 3 Eki 2026  · 8 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Sisin içinde yol alan bir gemiyi hayal edin. GPS'i gürültülü, okyanus akıntısı bilinmiyor ve tam konum doğrudan ölçülemiyor. Yalnızca sensör okumalarından yaklaşık olarak bulunabiliyor. Durum uzayı modelleri tam da bu tür sorunlar için geliştirildi: Önem verdiğiniz şeyin gizli olduğu ve elinizde yalnızca bunun kusurlu ölçümleri bulunduğu sistemler.

Bu makale, durum uzayı modellerinin yapısını, filtreleme ve yumuşatma yoluyla gizli durumların nasıl tahmin edileceğini, Kalman filtresinin nerede devreye girdiğini ve bu modellerin Python ile R'de nasıl uygulanacağını ele alır.

Durum Uzayı Modeli Nedir?

Durum uzayı modeli, zamanla değişen ve doğrudan gözlemlenemeyen durumlar üzerinden bir sistemi tanımlamak için kullanılan matematiksel bir çerçevedir. İki büyüklük söz konusudur: durum; herhangi bir anda sistemi tanımlayan gerçek, temel bilgidir. gözlem ise fiilen elde ettiğiniz gürültülü, dolaylı ölçümdür.

Model iki şeyi belirtir: gizli durumun bir zaman adımından diğerine nasıl evrildiğini ve bu gizli durumun gördüğünüz gözlemleri nasıl ürettiğini. Bu ayrım çerçeveyi bu kadar genel kılar. Sinyal işleme, ekonometri, kontrol sistemleri ve makine öğrenimi boyunca karşımıza çıkar. Çoğu zaman herkesin aynı biçimsel yapı içinde çalıştığının farkına bile varılmadan.

Durum Uzayı Modelleri Nasıl Çalışır

Öz mantık her zaman adımında basit bir sırayı izler:

Önceki durum → Mevcut durum → Gözlem

Sistem önceki gizli durumundan yenisine geçer. Gerçek sistemler mükemmel öngörülebilir olmadığından bu geçiş rastgelelik içerebilir. Yeni durum daha sonra kendi gürültüsüyle birlikte gözlemlenebilir bir ölçüm üretir. Durumu asla doğrudan görmezsiniz; yalnızca onun ürettiklerini, kusurlu biçimde görürsünüz.

Yapabileceğiniz şey, her yeni gözlemi gizli durumun en iyi tahmininizi güncellemek için kullanmaktır. Bu, çıkarım problemidir ve durum uzayı modelleri etrafındaki algoritmik düzeneklerin çoğu bunu çözmek üzere tasarlanmıştır.

Gizli durumlar zaman içinde gürültülü gözlemler üretir. Görsel: Yazarın çalışması.

Durum ve Gözlem Denklemleri

Modelin yapısı iki denkleme dayanır. Biri durumun nasıl hareket ettiğine, diğeri neyi ölçebileceğinize ilişkindir.

Durum denklemi

Durum denklemi, gizli durumun nasıl evrildiğini açıklar. Skaler biçimde:

Burada zₜ mevcut gizli durumdur; a geçiş dinamiklerini (önceki durumun ne ölçüde taşındığını) yakalar ve wₜ süreç gürültüsüdür — sistemin hareketindeki rastgelelik. Çok değişkenli sistemlerin matris formülasyonunda a bir geçiş matrisi olur, ancak fikir aynıdır.

Gözlem denklemi

Gözlem denklemi, gizli durumu ölçtüğünüz şeye bağlar:

yₜ gözlemlenen ölçümdür; c gözlem ilişkisini tanımlar ve vₜ ölçüm gürültüsüdür. Genel matris biçimini dert etmeden önce bu tür skaler sürümlerle başlayın. Matrisler genellik katar, yeni fikir değil.

Basit Bir Durum Uzayı Modeli Örneği

Yolda ilerleyen bir arabayı düşünün. Gerçek konumu ve hızı gizli durumdur. Bunları doğrudan gözlemleyemezsiniz. Elinizde gürültülü bir GPS okuması vardır. Durum denklemi, zaman adımları arasında konum ve hızın nasıl değiştiğini modelleyerek (araba yaklaşık aynı hızda hareket etmeyi sürdürür) açıklar. Gözlem denklemi, gerçek konumu birkaç metre sapma gösterebilen GPS okumalarına bağlar.

Bunu iyi gösteren bir görselleştirme üç çizgi içerir: gerçek konum (düzgün), gerçeğin etrafında saçılan GPS okumaları ve modelden elde edilen tahmini konum (gerçeğe yakın, ham GPS'ten biraz daha düzgün). O üçüncü çizgiyi elde etmek modelin tüm işidir.

Durumlar Nasıl Tahmin Edilir

Modeli tanımlamak sorunun yalnızca yarısıdır. Elinizdeki gözlemlerden gizli durumları da çıkarmanız gerekir. Üç görev alanı kapsar:

Filtreleme, yalnızca şu ana kadarki gözlemleri kullanarak mevcut durumu tahmin eder — izleme ve kontrol için gerçek zamanlı çıkarım. Yumuşatma, belirli bir noktanın öncesi ve sonrasındaki gözlemleri kullanarak bu tahminleri geriye dönük olarak düzeltir — genelde daha isabetlidir, ancak tüm diziyi gerektirir. Tahmin, gözlemler gelmeden önce gelecekteki durumları öne doğru ekstrapole eder.

Uygulamaların çoğu filtrelemeyi kullanır. Yumuşatma, geriye dönük analiz yaptığınızda ve hızdan çok doğruluğun önemli olduğu durumlarda gündeme gelir.

Kalman Filtreleme ve Durum Uzayı Modelleri

Kalman filtresi, doğrusal Gauss durum uzayı modellerinde filtreleme için kullanılan algoritmadır. Burada net olmak gerekir: durum uzayı modeli modelin kendisidir; Kalman filtresi, bu modellerin belirli bir sınıfına uygulanan bir çıkarım yöntemidir.

Filtre iki adım arasında dönüşümlü çalışır. Tahmin adımında, durum denklemini kullanarak mevcut tahmini ve bu tahminin ne kadar belirsiz olduğunu ileriye taşır. Güncelleme adımında, yeni bir gözlem gelir ve tahmin düzeltilir. Ne kadar değişeceği, tahminin belirsizliği ile ölçümün belirsizliğinin göreli büyüklüklerine bağlıdır. Modelin tahmini güvenilirse gözlemin etkisi azalır. GPS sinyali temiz ve model belirsizse gözlem baskın olur. Belirsizlik ağırlıklı bu harmanlama, Kalman filtresini pratikte işe yaratan şeydir.

Doğrusal olmayan veya Gauss olmayan durumlar için uzantılar mevcuttur: genişletilmiş Kalman filtresi dinamikleri doğrusal yaklaştırır, ünscented Kalman filtresi daha akıllı bir yaklaşım kullanır ve parçacık filtreleri, örnekleme yaparak en genel durumu ele alır. Bunlar ayrı yazıların konusudur.

Durum Uzayı Modellerinin Türleri

Çerçeve, dinamikler ve gürültü hakkında kabullerinizin ne olduğuna bağlı olarak çeşitli ayarları kapsar.

Doğrusal Gauss durum uzayı modelleri klasik ayardır: doğrusal geçiş ve gözlem denklemleri, Gauss gürültü. Kalman filtreleme doğrudan uygulanır ve tam çıkarım yapılabilir.

Doğrusal olmayan durum uzayı modelleri, durum geçişi veya gözlem ilişkisinin doğrusal olmadığı durumlarda ortaya çıkar — bir sarkaç ya da fiyat etkilerinin azalarak devam ettiği bir model gibi. Artık tam çıkarım mümkün değildir.

Gauss olmayan durum uzayı modelleri, gürültünün normal dağılıma uyduğu varsayımını bırakır. Sayım verileri, ikili sonuçlar ve ağır kuyruklu süreçler bu kapsamdadır.

Durum Uzayı Modelleri ve İlgili Zaman Serisi Modelleri

Sınırlar ilk bakışta göründüğünden daha belirsiz olduğundan, yapılmaya değer birkaç karşılaştırma var.

Durum uzayı modelleri ve ARIMA

ARIMA, gözlemlenen değerleri ve bunların geçmiş hatalarını herhangi bir gizli durum tanıtmaksızın doğrudan modelleler. Durum uzayı modelleri, gözlemlerin ondan üretildiği örtük durumları açıkça devreye sokar. Bununla birlikte, ARIMA modelleri durum uzayı biçiminde yeniden yazılabilir — dolayısıyla iki yaklaşım ilk göründüğü kadar ayrı değildir ve yazılımlar ARIMA'yı uydururken genellikle içsel olarak durum uzayı temsillerini kullanır.

Durum uzayı modelleri ve gizli Markov modelleri

Her ikisi de gizli durumlar içerir. Klasik HMM'ler ayrık örtük durumlar kullanır (sistem k moddan birindedir); çoğu durum uzayı modeli ise sürekli durumlar kullanır. Konuşma tanımada ayrık modlar anlamlıdır; fiziksel bir nesneyi izlerken sürekli durumlar doğal tercihtir.

Durum uzayı modelleri ve yapısal zaman serisi modelleri

Yapısal zaman serisi modelleri (bir seriyi trend, mevsimsellik ve düzensiz bileşenlere ayıran) genellikle onlarla rekabet etmekten ziyade durum uzayı modeli olarak formüle edilir. Çerçevenin belirli bir kullanım durumunu temsil ederler.

Python ve R ile Durum Uzayı Modelleri

İş akışı her iki dilde de benzerdir — modeli tanımlayın, uydurun ve gizli durum tahminlerini çıkarın.

Python'da durum uzayı modelleri

statsmodels kütüphanesi, durum uzayı modellerini uydurmak için sade bir arayüz sunar. İşte bir yerel seviye modeli (en basit yapısal model; rastgele yürüyüş durumu ve gürültülü gözlemler) ile bazı zaman serisi verilerine uyum:

import statsmodels.api as sm

# Fit a local level (random walk plus noise) model
model = sm.tsa.UnobservedComponents(time_series, level='local level')
result = model.fit(disp=False)

# Filtered state estimates (the hidden level at each time step)
print(result.filtered_state[0])

# Forecast the next 10 periods
forecast = result.forecast(10)

Filtrelenmiş durum, modelin her zaman noktasındaki gizli seviyeye ilişkin en iyi tahminini verir. Asıl ilgi alanınız parametrelerin kendisi değil, bu çıktıdır.

R'da durum uzayı modelleri

R'da KFAS paketi, Gauss durum uzayı modellerini ele alır ve bu alanda düzenli çalışıyorsanız bilinmeye değerdir. İş akışı Python'a paraleldir: bir model nesnesi tanımlayın, uydurun ve yumuşatılmış ya da filtrelenmiş durumları çıkarın. Sadece uyum istatistiklerini değil, gizli durum tahminlerini yorumlayın.

library(KFAS)

# Fit a local level (random walk plus noise) model
model <- SSModel(time_series ~ SSMtrend(1, Q = NA), H = NA)
fit <- fitSSM(model, inits = c(log(1), log(1)))
out <- KFS(fit$model)

# Filtered state estimates (the hidden level at each time step)
out$att

# Forecast the next 10 periods
predict(fit$model, n.ahead = 10)

Durum Uzayı Modellerinin Avantajları ve Sınırlamaları

Çoğu modelleme çerçevesinde olduğu gibi, güçlü ve zayıf yönler aynı yerden gelir: baştan bir yapıya bağlı kalmanız gerekir.

Avantajlar: Gizli süreçleri görmezden gelmek yerine açıkça temsil ederler. Zamanla değişen sistemleri doğal biçimde ele alırlar. Ölçüm belirsizliği, sonradan düşünülmüş bir unsur olarak değil, modelin içine gömülüdür. Ve aynı çerçeve, model yapısını değiştirmeden filtreleme, yumuşatma ve öngörü desteği sunar.

Sınırlamalar: Modeli belirtmek zor olabilir. Gizli durumun ne ifade ettiğine ve nasıl evrildiğine karar vermeniz gerekir; bu da gerçek bir alan bilgisi gerektirir. Doğrusal olmayan veya Gauss olmayan sistemlerde çıkarım maliyetli hale gelir. Ve dinamikler ya da gürültü hakkındaki kabulleriniz yanlışsa, tahminler de her zaman bariz olmayan biçimlerde yanlış olacaktır.

Sonuç

Bir durum uzayı modeli iki şeyi tanımlar: gözlemlenmeyen bir durumun zaman içinde nasıl evrildiğini ve bu durumun ölçebildiğiniz gözlemleri nasıl ürettiğini. Bunlar durum denklemi ve gözlem denklemidir. Geri kalan her şey (Kalman filtreleme, yumuşatma, tahmin) modelin ürettiği verilerden gizli durumu çıkarmaya dairdir.

Bu çerçeveyi faydalı bulmamın nedeni, bilmediklerinizi açıkça ifade etmeye zorlamasıdır. Gözlemleri doğrudan modellemek (ARIMA'nın yaptığı gibi) yerine, temel süreç hakkında bir anlatıya bağlı kalmak zorunda kalırsınız. Bu bir kısıttır ama aynı zamanda bir netleştirmedir. Gizli durumun ne olduğunu ve nasıl hareket ettiğini yazdığınız anda çıkarım problemi mekanik hale gelir. Zor olan kısım zaten modellemenin kendisiydi.

Klasik zaman serisi yöntemlerinden geliyorsanız, durum uzayı modellerini hâlihazırda bildiklerinizin bir genellemesi olarak değil, kendi bağlamları içinde anlamaya değer. Python ile Zaman Serileri kursumuz daha geniş araç setini kapsar ve eğer sıradaki durağınız gizli Markov modelleri veya Kalman filtreleme ise, burada kurulan kavramsal temel doğrudan aktarılır.


Vinod Chugani's photo
Author
Vinod Chugani
LinkedIn

Vinod Chugani kariyerine Tokyo'da JPMorgan'ın en genç Hedge Fund Sales Desk Lideri olarak başladı ve daha sonra Lehman Brothers'ta bireysel satış rekoru kırdı, ardından 30 ülkede faaliyet gösteren bir elektronik dağıtım işi kurdu ve veriye yönelmeden önce geliri SG$100 milyonun üzerine taşıdı. Duke Ekonomimezunu ve NYC Data Science Academy alum, Maven'de Hugo Bowne-Anderson'ın Building AI Applications kursu için 100+ başvuru arasından seçilen üç bursiyerden biriydi. Bugün, istatistikten ajan temelli yapay zekâya uzanan konularda DataCamp, KDnuggets, Machine Learning Mastery ve Statology için yazıyor ve adında 1.000'i aşkın bire bir oturum bulunan NYC Data Science Academy'de veri profesyonellerine mentorluk yapıyor.

 

SSS

Durum uzayı modeli ile ARIMA gibi bir zaman serisi modeli arasındaki fark nedir?

ARIMA, gözlemlenen değerler ile bunların geçmiş hataları arasındaki ilişkileri doğrudan modelleyerek çalışır — gizli bir durum yoktur. Durum uzayı modelleri ise gözlemlerin üretildiği bir örtük durum tanıtır. Pratikte birçok zaman serisi modeli (ARIMA dahil) durum uzayı biçiminde yazılabildiğinden, rekabet etmekten ziyade birbirini tamamlarlar.

Durum uzayı modellerini kullanmak için Kalman filtrelemeyi anlamam gerekir mi?

Kullanmaya gerek yok — Python'da statsmodels ve R'da KFAS gibi kütüphaneler filtrelemeyi dahili olarak halleder. Ancak tahmin-güncelleme mantığını anlamak, çıktıyı yorumlamaya ve model iyi uymadığında sorun gidermeye yardımcı olur.

Filtreleme yerine ne zaman yumuşatma kullanmalıyım?

Tüm veri kümesine sahipseniz ve en doğru durum tahminlerini istiyorsanız yumuşatma kullanın — geriye dönük analiz, anomali tespiti veya tarihsel bir seriyi temizleme gibi. Veri geldikçe gerçek zamanlı tahminlere ihtiyaç duyduğunuzda filtrelemeyi tercih edin.

Sistemim doğrusal değilse ne olur?

Standart Kalman filtresi artık tam olarak uygulanamaz. Yaygın alternatifler; mevcut tahmin etrafında doğrusal yaklaşım yapan genişletilmiş Kalman filtresi, daha akıllı bir yaklaşım kullanan ünscented Kalman filtresi ve durum dağılımından örnekleme yapan ve genel durum için çalışan parçacık filtreleridir.

Gizli duruma neyi dahil edeceğimi nasıl seçerim?

Zor olan kısım budur — ve bu istatistiksel değil, modelleme kararıdır. Gizli durum, doğrudan ölçemediğiniz, bir sonraki gözlemi yönlendiren her şeyi içermelidir. Hareket eden bir nesne için bu tipik olarak konum ve hızdır. Ekonomik bir seri için alttaki trend ve mevsimsel bir bileşen olabilir. Basit başlayın ve ancak daha basit model açıkça başarısız olursa karmaşıklık ekleyin.

Durum uzayı modelleri eksik gözlemleri yönetebilir mi?

Evet, ve bu ARIMA gibi yöntemlere karşı gerçek üstünlüklerinden biridir. Bir gözlem eksik olduğunda, filtre yalnızca güncelleme adımını atlar ve tahmini ileri taşır. Belirsizlik, boşluk sırasında doğal olarak artar; bu da tam olarak doğru davranıştır.

Durum uzayı modelleri ile LSTM gibi derin öğrenme dizi modelleri arasındaki ilişki nedir?

Her ikisi de gizli durumla sıralı verileri modeller, ancak benzerlik burada biter. LSTM'ler yorumlanabilir bir yapı olmaksızın durum dinamiklerini veriden öğrenir; durum uzayı modelleri dinamikleri açıkça belirtir ve belirsizlik tahminleri üretir. Yorumlanabilirlik ve küçük veri kümeleri için durum uzayı modelleri genellikle daha kullanışlıdır. Büyük veri setlerinde ve karmaşık örüntülerde ise sinirsel yaklaşımlar ham performansta çoğu kez öne çıkar.

Gizli durum her zaman tek boyutlu mudur?

Hayır. Durum, herhangi bir boyutta bir vektör olabilir. Hareket eden nesne örneğinde durum iki boyutludur: konum ve hız. Daha karmaşık yapısal modellerde durum; bir trend bileşeni, birden fazla mevsimsel bileşen ve aynı anda bir regresyon terimi içerebilir. Matris formülasyonu tüm bunları tekdüze biçimde ele alır.

Konular
Veri Bilimi
İlgili

{count, plural, one {blog} other {blog}}

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

{count, plural, one {blog} other {blog}}

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

{count, plural, one {Eğitim} other {Eğitim}}

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

{count, plural, one {Eğitim} other {Eğitim}}

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör