Lewati ke konten utama

Model Ruang Keadaan: Cara Kerjanya dan Tempat Penerapannya

Pelajari bagaimana model ruang keadaan merepresentasikan sistem dinamis menggunakan keadaan tersembunyi dan observasi, termasuk persamaan keadaan dan observasi, penyaringan Kalman, serta penerapan deret waktu.
Diperbarui 28 Sep 2026  · 8 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Bayangkan sebuah kapal bernavigasi di tengah kabut. GPS-nya berisik, arus laut tidak diketahui, dan posisi pastinya tidak dapat diukur secara langsung. Posisi hanya bisa didekati dari pembacaan sensor. Model ruang keadaan dibuat tepat untuk jenis masalah seperti ini: sistem di mana hal yang Anda pedulikan tersembunyi, dan yang Anda miliki hanyalah pengukuran yang tidak sempurna tentangnya.

Artikel ini membahas struktur model ruang keadaan, cara memperkirakan keadaan tersembunyi melalui filtering dan smoothing, di mana filter Kalman berperan, serta cara mengimplementasikan model ini di Python dan R.

Apa Itu Model Ruang Keadaan?

Model ruang keadaan adalah kerangka matematis untuk menggambarkan sistem yang berubah seiring waktu melalui keadaan yang tidak dapat Anda amati secara langsung. Ada dua besaran yang berperan: keadaan, yaitu informasi dasar yang sebenarnya menggambarkan sistem pada momen tertentu, dan observasi, yaitu pengukuran tidak langsung yang berisik yang benar-benar Anda peroleh.

Model ini menspesifikasikan dua hal: bagaimana keadaan tersembunyi berevolusi dari satu langkah waktu ke langkah berikutnya, dan bagaimana keadaan tersembunyi itu menghasilkan observasi yang Anda lihat. Pemisahan ini yang membuat kerangka tersebut begitu umum. Ia muncul di pemrosesan sinyal, ekonometrika, sistem kendali, dan pembelajaran mesin. Ini sering terjadi tanpa ada yang menyadari bahwa mereka semua bekerja dalam struktur formal yang sama.

Cara Kerja Model Ruang Keadaan

Logika intinya mengikuti urutan sederhana pada setiap langkah waktu:

Keadaan sebelumnya → Keadaan saat ini → Observasi

Sistem bergerak dari keadaan tersembunyi sebelumnya ke keadaan baru. Transisi ini dapat mencakup keacakan, karena sistem nyata tidak sepenuhnya dapat diprediksi. Keadaan baru kemudian menghasilkan pengukuran yang dapat diamati, yang memiliki kebisingannya sendiri. Anda tidak pernah melihat keadaannya secara langsung; Anda melihat apa yang dihasilkannya, secara tidak sempurna.

Yang bisa Anda lakukan adalah menggunakan setiap observasi baru untuk memperbarui perkiraan terbaik Anda tentang keadaan tersembunyi. Itulah masalah inferensi, dan itulah yang sebagian besar perangkat algoritmik di sekitar model ruang keadaan dirancang untuk diselesaikan.

Keadaan tersembunyi menghasilkan observasi yang berisik seiring waktu. Gambar oleh Penulis.

Persamaan Keadaan dan Observasi

Struktur model bermuara pada dua persamaan. Satu untuk bagaimana keadaan bergerak, satu lagi untuk apa yang dapat Anda ukur.

Persamaan keadaan

Persamaan keadaan menjelaskan bagaimana keadaan tersembunyi berevolusi. Dalam bentuk skalar:

Di sini, zₜ adalah keadaan tersembunyi saat ini, a menangkap dinamika transisi (seberapa kuat keadaan sebelumnya terbawa), dan wₜ adalah noise proses — keacakan dalam bagaimana sistem bergerak. Dalam formulasi matriks untuk sistem multivariat, a menjadi matriks transisi, tetapi idenya sama.

Persamaan observasi

Persamaan observasi menghubungkan keadaan tersembunyi dengan apa yang Anda ukur:

yₜ adalah pengukuran yang diamati, c mendefinisikan hubungan observasi, dan vₜ adalah noise pengukuran. Mulailah dengan versi skalar seperti ini sebelum memikirkan bentuk matriks umum. Matriks menambah generalitas, bukan ide baru.

Contoh Sederhana Model Ruang Keadaan

Pikirkan sebuah mobil yang bergerak di sepanjang jalan. Posisi dan kecepatannya yang sebenarnya adalah keadaan tersembunyi. Anda tidak dapat mengamatinya secara langsung. Yang Anda miliki adalah pembacaan GPS, yang berisik. Persamaan keadaan memodelkan bagaimana posisi dan kecepatan berubah antar langkah waktu (mobil terus bergerak kira-kira pada kecepatan yang sama). Persamaan observasi menghubungkan posisi sebenarnya dengan pembacaan GPS, yang mungkin meleset beberapa meter.

Visualisasi yang baik menampilkan tiga garis: posisi sebenarnya (halus), pembacaan GPS (menyebar di sekitar nilai sebenarnya), dan posisi yang diestimasi dari model (dekat dengan nilai sebenarnya, sedikit lebih halus daripada GPS mentah). Mendapatkan garis ketiga itulah tugas utama model.

Cara Keadaan Diestimasi

Mendefinisikan model hanyalah setengah dari masalah. Anda juga perlu menginferensikan keadaan tersembunyi dari observasi yang benar-benar Anda miliki. Tiga tugas mencakup ruangnya:

Filtering memperkirakan keadaan saat ini hanya menggunakan observasi hingga saat ini — inferensi waktu nyata, berguna untuk pelacakan dan kendali. Smoothing meninjau kembali dan merevisi perkiraan tersebut menggunakan observasi dari sebelum dan sesudah suatu titik — umumnya lebih akurat, tetapi memerlukan urutan lengkap. Prediksi mengekstrapolasi ke depan untuk memperkirakan keadaan masa depan sebelum observasi tiba.

Sebagian besar aplikasi menggunakan filtering. Smoothing muncul ketika Anda melakukan analisis retrospektif dan akurasi lebih penting daripada kecepatan.

Penyaringan Kalman dan Model Ruang Keadaan

Filter Kalman adalah algoritma untuk filtering pada model ruang keadaan linear Gaussian. Perlu ditegaskan di sini: model ruang keadaan adalah modelnya; filter Kalman adalah salah satu metode inferensi yang berlaku untuk kelas model tertentu tersebut.

Filter bekerja dalam dua langkah yang bergantian. Pada langkah prediksi, ia menggunakan persamaan keadaan untuk memproyeksikan perkiraan saat ini ke depan dalam waktu, beserta ukuran seberapa tidak pastinya perkiraan tersebut. Pada langkah pembaruan, sebuah observasi baru tiba dan perkiraannya dikoreksi. Seberapa besar pergeserannya bergantung pada ketidakpastian relatif antara prediksi dan pengukuran. Jika prediksi model dapat diandalkan, observasi berpengaruh lebih kecil. Jika sinyal GPS bersih dan model tidak pasti, observasi mendominasi. Pencampuran berbobot ketidakpastian itulah yang membuat filter Kalman bekerja dalam praktik.

Ada ekstensi untuk pengaturan nonlinier atau non-Gaussian: extended Kalman filter melakukan linearisasi dinamika, unscented Kalman filter menggunakan pendekatan aproksimasi yang lebih cerdas, dan particle filter menangani kasus yang sepenuhnya umum dengan sampling. Itu topik artikel lain.

Jenis-jenis Model Ruang Keadaan

Kerangka ini mencakup berbagai pengaturan tergantung pada apa yang Anda bersedia asumsikan tentang dinamika dan noise.

Model ruang keadaan linear Gaussian adalah pengaturan klasik: persamaan transisi dan observasi linear, noise Gaussian. Filtering Kalman berlaku langsung dan inferensi eksak dapat ditangani.

Model ruang keadaan nonlinier muncul ketika transisi keadaan atau hubungan observasi tidak linear — pikirkan bandul, atau model di mana efek harga menurun bertahap. Inferensi eksak tidak lagi tersedia.

Model ruang keadaan non-Gaussian menghapus asumsi bahwa noise mengikuti distribusi normal. Data cacah, keluaran biner, dan proses berekor berat termasuk di sini.

Model Ruang Keadaan vs. Model Deret Waktu Terkait

Beberapa perbandingan perlu diperjelas, karena batas-batasnya di sini lebih kabur daripada yang terlihat pada awalnya.

Model ruang keadaan vs. ARIMA

ARIMA memodelkan nilai yang diamati dan galat masa lalunya secara langsung, tanpa memperkenalkan keadaan tersembunyi. Model ruang keadaan menghadirkan keadaan laten secara eksplisit. Meski begitu, model ARIMA dapat diformulasikan ulang dalam bentuk ruang keadaan — jadi keduanya tidak seseterpisah yang terlihat, dan perangkat lunak sering menggunakan representasi ruang keadaan secara internal untuk menyesuaikan ARIMA juga.

Model ruang keadaan vs. hidden Markov models

Keduanya melibatkan keadaan tersembunyi. HMM klasik menggunakan keadaan laten diskret (sistem berada dalam salah satu dari k mode), sementara sebagian besar model ruang keadaan menggunakan keadaan kontinu. Untuk pengenalan ucapan, mode diskret masuk akal; untuk melacak objek fisik, keadaan kontinu adalah pilihan yang alami.

Model ruang keadaan vs. model deret waktu struktural

Model deret waktu struktural (yang menguraikan deret menjadi komponen tren, musiman, dan tak beraturan) biasanya diformulasikan sebagai model ruang keadaan alih-alih bersaing dengannya. Mereka adalah kasus penggunaan spesifik dari kerangka tersebut.

Model Ruang Keadaan di Python dan R

Alur kerjanya serupa di kedua bahasa — definisikan model, sesuaikan, dan ambil estimasi keadaan tersembunyi.

Model ruang keadaan di Python

Pustaka statsmodels menawarkan antarmuka yang rapi untuk menyesuaikan model ruang keadaan. Berikut model level lokal (model struktural paling sederhana, dengan keadaan random walk dan observasi berisik) yang disesuaikan ke beberapa data deret waktu:

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)

Keadaan terfilter memberi Anda perkiraan terbaik model tentang level tersembunyi pada setiap titik waktu. Itulah keluaran utama yang Anda butuhkan, bukan parameternya sendiri.

Model ruang keadaan di R

Di R, paket KFAS menangani model ruang keadaan Gaussian dan layak diketahui jika Anda sering bekerja di area ini. Alur kerjanya mencerminkan Python: definisikan objek model, sesuaikan, dan ekstrak keadaan hasil smoothing atau filtering. Tafsirkan estimasi keadaan tersembunyi, bukan hanya statistik kecocokan.

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)

Kelebihan dan Keterbatasan Model Ruang Keadaan

Seperti kebanyakan kerangka pemodelan, kekuatan dan kelemahannya berasal dari hal yang sama: Anda harus berkomitmen pada struktur sejak awal.

Kelebihan: Mereka merepresentasikan proses tersembunyi secara eksplisit alih-alih menutupinya. Mereka secara alami menangani sistem yang berubah seiring waktu. Ketidakpastian pengukuran dibangun ke dalam model, bukan dianggap belakangan. Dan kerangka yang sama mendukung filtering, smoothing, dan peramalan tanpa mengubah struktur model.

Keterbatasan: Menspesifikasikan model bisa sulit. Anda perlu memutuskan apa arti keadaan tersembunyi dan bagaimana ia berevolusi, yang memerlukan penilaian domain yang nyata. Untuk sistem nonlinier atau non-Gaussian, inferensi menjadi mahal. Dan jika asumsi Anda tentang dinamika atau noise salah, perkiraan akan salah dengan cara yang tidak selalu tampak jelas.

Kesimpulan

Model ruang keadaan menggambarkan dua hal: bagaimana suatu keadaan yang tidak teramati berevolusi seiring waktu, dan bagaimana keadaan itu menghasilkan observasi yang dapat Anda ukur. Itulah persamaan keadaan dan persamaan observasi. Selebihnya (filtering Kalman, smoothing, prediksi) adalah tentang menginferensikan keadaan tersembunyi dari data yang dihasilkan model.

Yang saya anggap berguna dari kerangka ini adalah ia memaksa Anda untuk tegas tentang apa yang tidak Anda ketahui. Alih-alih memodelkan observasi secara langsung (seperti yang dilakukan ARIMA), Anda dipaksa berkomitmen pada cerita tentang proses yang mendasarinya. Itu merupakan batasan, tetapi juga sebuah klarifikasi. Setelah Anda menuliskan apa yang menurut Anda merupakan keadaan tersembunyi dan bagaimana pergerakannya, masalah inferensi menjadi mekanis. Bagian tersulitnya memang pemodelan.

Jika Anda berasal dari metode deret waktu klasik, model ruang keadaan layak dipahami berdasarkan istilahnya sendiri, bukan sebagai generalisasi dari apa yang sudah Anda ketahui. Kursus Time Series with Python kami membahas perangkat yang lebih luas, dan jika hidden Markov models atau filtering Kalman adalah tujuan Anda berikutnya, landasan konseptual di sini akan langsung terbawa.


Vinod Chugani's photo
Author
Vinod Chugani
LinkedIn

Vinod Chugani memulai kariernya di Tokyo sebagai Kepala Meja Penjualan Hedge Fund termuda di JPMorgan dan kemudian mencetak rekor penjualan individu di Lehman Brothers, lalu membangun bisnis distribusi elektronik di 30 negara dengan pendapatan melampaui SG$100 juta sebelum beralih ke data. Lulusan Ekonomi Duke dan alumni NYC Data Science Academy, ia menjadi salah satu dari tiga penerima beasiswa dari lebih dari 100 pelamar untuk kursus Building AI Applications oleh Hugo Bowne-Anderson di Maven. Saat ini, ia menulis untuk DataCamp, KDnuggets, Machine Learning Mastery, dan Statology tentang topik mulai dari statistika hingga AI agensial, dan membimbing para profesional data di NYC Data Science Academy dengan lebih dari 1.000 sesi tatap muka atas namanya.

 

FAQ

Apa perbedaan antara model ruang keadaan dan model deret waktu seperti ARIMA?

ARIMA memodelkan hubungan antar nilai yang diamati dan galat masa lalunya secara langsung — tidak ada keadaan tersembunyi. Model ruang keadaan memperkenalkan keadaan laten dari mana observasi dihasilkan. Dalam praktiknya, banyak model deret waktu (termasuk ARIMA) dapat ditulis dalam bentuk ruang keadaan, sehingga mereka lebih bersifat saling melengkapi daripada saling bersaing.

Apakah saya perlu memahami penyaringan Kalman untuk menggunakan model ruang keadaan?

Tidak untuk menggunakannya — pustaka seperti statsmodels di Python dan KFAS di R menangani filtering secara internal. Namun memahami logika prediksi-pembaruan membantu Anda menafsirkan keluaran dan men-debug masalah saat model tidak pas dengan baik.

Kapan saya harus menggunakan smoothing alih-alih filtering?

Gunakan smoothing saat Anda memiliki dataset lengkap dan menginginkan estimasi keadaan yang paling akurat — analisis retrospektif, deteksi anomali, atau pembersihan deret historis. Gunakan filtering saat Anda membutuhkan estimasi waktu nyata saat data tiba.

Apa yang terjadi jika sistem saya nonlinier?

Filter Kalman standar tidak lagi berlaku secara eksak. Alternatif umum adalah extended Kalman filter (yang melakukan linearisasi di sekitar perkiraan saat ini), unscented Kalman filter (yang menggunakan aproksimasi yang lebih cerdas), dan particle filter (yang melakukan sampling dari distribusi keadaan dan bekerja untuk kasus umum).

Bagaimana cara memilih apa yang dimasukkan ke dalam keadaan tersembunyi?

Inilah bagian tersulit — dan ini keputusan pemodelan, bukan statistik. Keadaan tersembunyi harus memuat segala sesuatu yang mendorong observasi berikutnya yang tidak dapat Anda ukur secara langsung. Untuk objek bergerak, biasanya itu posisi dan kecepatan. Untuk deret ekonomi, mungkin tren yang mendasari dan komponen musiman. Mulailah dari yang sederhana dan tambahkan kompleksitas hanya jika model yang lebih sederhana jelas gagal.

Bisakah model ruang keadaan menangani observasi yang hilang?

Ya, dan ini adalah salah satu keunggulan nyata dibandingkan metode seperti ARIMA. Ketika suatu observasi hilang, filter cukup melewatkan langkah pembaruan dan memajukan prediksi. Ketidakpastian secara alami meningkat selama jeda, yang persis merupakan perilaku yang tepat.

Apa hubungan antara model ruang keadaan dan model urutan deep learning seperti LSTM?

Keduanya memodelkan data berurutan dengan keadaan tersembunyi, tetapi perbandingan berakhir di sana. LSTM mempelajari dinamika keadaan dari data tanpa struktur yang dapat ditafsirkan; model ruang keadaan menspesifikasikan dinamika secara eksplisit dan menghasilkan estimasi ketidakpastian. Untuk keterjelasan dan dataset kecil, model ruang keadaan cenderung lebih berguna. Untuk dataset besar dengan pola kompleks, pendekatan neural sering unggul dalam kinerja mentah.

Apakah keadaan tersembunyi selalu satu dimensi?

Tidak. Keadaan bisa berupa vektor dengan ukuran apa pun. Pada contoh objek bergerak, keadaannya dua dimensi: posisi dan kecepatan. Pada model struktural yang lebih kompleks, keadaan dapat mencakup komponen tren, beberapa komponen musiman, dan term regresi secara bersamaan. Formulasi matriks menangani semuanya secara seragam.

Topik
Data Science
Terkait

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

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

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

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

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

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

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

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya