[ad_1]
MLE cung cấp một khuôn khổ giải quyết chính xác câu hỏi này. Nó giới thiệu một hàm khả năng, là một hàm tạo ra một hàm khác. Hàm khả năng này lấy một vectơ tham số, thường được ký hiệu là theta và tạo ra một hàm mật độ xác suất (PDF) phụ thuộc vào theta.
Hàm mật độ xác suất (PDF) của một phân bố là một hàm nhận giá trị x và trả về xác suất của nó trong phân bố. Do đó, các hàm khả năng thường được biểu thị như sau:
Giá trị của hàm này chỉ ra khả năng quan sát x từ phân phối được xác định bởi PDF với theta làm tham số của nó.
Mục đích
Khi xây dựng mô hình dự báo, chúng ta có các mẫu dữ liệu và mô hình được tham số hóa và mục tiêu của chúng ta là ước tính các tham số của mô hình. Trong các ví dụ của chúng tôi, chẳng hạn như mô hình Hồi quy và MA, các tham số này là các hệ số trong các công thức mô hình tương ứng.
Tương đương trong MLE là chúng ta có các quan sát và PDF cho một phân phối được xác định trên một tập hợp các tham số, theta, là những tham số chưa biết và không thể quan sát trực tiếp. Mục tiêu của chúng tôi là ước tính theta.
Cách tiếp cận MLE liên quan đến việc tìm tập hợp các tham số, theta, giúp tối đa hóa hàm khả năng cho dữ liệu có thể quan sát được, x.
Chúng tôi giả định các mẫu của chúng tôi, x, được rút ra từ một phân phối có PDF đã biết phụ thuộc vào một tập hợp các tham số, theta. Điều này ngụ ý rằng khả năng (xác suất) quan sát x theo PDF này về cơ bản là 1. Do đó, việc xác định các giá trị theta làm cho giá trị hàm khả năng của chúng tôi gần bằng 1 trên các mẫu của chúng tôi sẽ tiết lộ các giá trị tham số thực.
Khả năng có điều kiện
Lưu ý rằng chúng ta chưa đưa ra bất kỳ giả định nào về phân phối (PDF) mà hàm khả năng dựa trên. Bây giờ, hãy giả sử quan sát X của chúng ta là một vectơ (x_1, x_2, …, x_n). Chúng ta sẽ xem xét một hàm xác suất biểu diễn xác suất quan sát x_n có điều kiện là chúng ta đã quan sát (x_1, x_2, …, x_{n-1}) —
Điều này thể hiện khả năng chỉ quan sát x_n với các giá trị trước đó (và theta, tập hợp các tham số). Bây giờ, chúng ta định nghĩa hàm khả năng có điều kiện như sau:
Sau này, chúng ta sẽ thấy tại sao sử dụng hàm xác suất có điều kiện lại hữu ích hơn là hàm xác suất chính xác.
Khả năng đăng nhập
Trong thực tế, thường thuận tiện hơn khi sử dụng logarit tự nhiên của hàm khả năng, được gọi là hàm log-likelihood:
Điều này thuận tiện hơn vì chúng ta thường làm việc với hàm khả năng là hàm xác suất chung của các biến độc lập, hàm này chuyển thành tích của xác suất của từng biến. Lấy logarit sẽ chuyển tích này thành tổng.
Để đơn giản, tôi sẽ trình bày cách ước tính mô hình trung bình động cơ bản nhất – MA(1):
Ở đây, x_t biểu thị các quan sát chuỗi thời gian, alpha và beta là các tham số mô hình được ước tính và epsilon là nhiễu ngẫu nhiên được rút ra từ phân phối chuẩn với giá trị trung bình bằng 0 và một số phương sai – sigma, cũng sẽ được ước tính. Do đó, “theta” của chúng tôi là (alpha, beta, sigma), mà chúng tôi muốn ước tính.
Hãy xác định các tham số và tạo một số dữ liệu tổng hợp bằng Python:
import pandas as pd
import numpy as npSTD = 3.3
MEAN = 0
ALPHA = 18
BETA = 0.7
N = 1000
df = pd.DataFrame({"et": np.random.regular(loc=MEAN, scale=STD, measurement=N)})
df("et-1") = df("et").shift(1, fill_value=0)
df("xt") = ALPHA + (BETA*df("et-1")) + df("et")
Lưu ý rằng chúng tôi đã đặt độ lệch chuẩn của phân phối lỗi là 3,3, với alpha là 18 và beta là 0,7. Dữ liệu trông như thế này —
Hàm khả năng cho MA(1)
Mục tiêu của chúng tôi là xây dựng hàm khả năng giải quyết câu hỏi: khả năng quan sát chuỗi thời gian X=(x_1, …, x_n) của chúng tôi giả sử chúng được tạo ra bởi quy trình MA(1) được mô tả trước đó là bao nhiêu?
Thách thức trong việc tính toán xác suất này nằm ở sự phụ thuộc lẫn nhau giữa các mẫu của chúng ta — bằng chứng là cả x_t và x_{t-1} đều phụ thuộc vào e_{t-1) — khiến việc xác định xác suất chung khi quan sát tất cả các mẫu (được gọi là khả năng chính xác) trở nên không đơn giản.
Do đó, như đã thảo luận trước đây, thay vì tính toán khả năng chính xác, chúng ta sẽ làm việc với khả năng có điều kiện. Hãy bắt đầu với khả năng quan sát một mẫu duy nhất cho tất cả các mẫu trước đó:
Việc này dễ tính toán hơn nhiều vì —
Tất cả những gì còn lại là tính toán khả năng có điều kiện của việc quan sát tất cả các mẫu:
áp dụng logarit tự nhiên sẽ cho:
đó là chức năng chúng ta nên tối đa hóa.
Mã số
Chúng tôi sẽ sử dụng GenericLikelihoodModel
lớp từ statsmodels cho việc triển khai ước tính MLE của chúng tôi. Như đã nêu trong hướng dẫn trên trang net của statsmodels, chúng ta chỉ cần phân lớp lớp này và đưa vào phép tính hàm khả năng:
from scipy import stats
from statsmodels.base.mannequin import GenericLikelihoodModel
import statsmodels.api as smclass MovingAverageMLE(GenericLikelihoodModel):
def initialize(self):
tremendous().initialize()
extra_params_names = ('beta', 'std')
self._set_extra_params_names(extra_params_names)
self.start_params = np.array((0.1, 0.1, 0.1))
def calc_conditional_et(self, intercept, beta):
df = pd.DataFrame({"xt": self.endog})
ets = (0.0)
for i in vary(1, len(df)):
ets.append(df.iloc(i)("xt") - intercept - (beta*ets(i-1)))
return ets
def loglike(self, params):
ets = self.calc_conditional_et(params(0), params(1))
return stats.norm.logpdf(
ets,
scale=params(2),
).sum()
Chức năng loglike
là cần thiết để thực hiện. Cho các giá trị tham số lặp params
và các biến phụ thuộc (trong trường hợp này là mẫu chuỗi thời gian), được lưu trữ dưới dạng thành viên của lớp self.endog
nó tính toán giá trị khả năng ghi nhật ký có điều kiện, như chúng ta đã thảo luận trước đó.
Bây giờ chúng ta hãy tạo mô hình và điều chỉnh theo dữ liệu mô phỏng của mình:
df = sm.add_constant(df) # add intercept for estimation (alpha)
mannequin = MovingAverageMLE(df("xt"), df("const"))
r = mannequin.match()
r.abstract()
và đầu ra là:
Và thế là xong! Như đã trình bày, MLE đã ước tính thành công các tham số mà chúng tôi đã chọn để mô phỏng.
Việc ước tính ngay cả một mô hình MA(1) đơn giản với khả năng tối đa cũng chứng minh được sức mạnh của phương pháp này, không chỉ cho phép chúng ta sử dụng dữ liệu một cách hiệu quả mà còn cung cấp nền tảng thống kê vững chắc để hiểu và diễn giải động lực của dữ liệu chuỗi thời gian.
Hy vọng bạn thích nó !
(1) Andrew Lesniewski, Phân tích chuỗi thời gian2019, Cao đẳng Baruch, New York
(2) Eric Zivot, Ước tính các mô hình ARMA2005
Trừ khi có ghi chú khác, tất cả hình ảnh đều là của tác giả
[ad_2]
Source link