Dự đoán phương sai của dữ liệu không đồng nhất


15

Tôi đang cố gắng thực hiện hồi quy trên dữ liệu không đồng nhất trong đó tôi đang cố gắng dự đoán các phương sai lỗi cũng như các giá trị trung bình theo mô hình tuyến tính. Một cái gì đó như thế này:

y(x,t)=y¯(x,t)+ξ(x,t),ξ(x,t)N(0,σ(x,t)),y¯(x,t)=y0+ax+bt,σ(x,t)=σ0+cx+dt.

Nói cách khác, dữ liệu bao gồm các phép đo lặp lại của tại các giá trị khác nhau của xt . Tôi giả sử các phép đo này bao gồm giá trị trung bình "đúng" ˉ y ( x , t ) là hàm tuyến tính của xt , với nhiễu Gaussian cộng gộp ξ ( x , t ) có độ lệch chuẩn (hoặc phương sai, tôi không có quyết định) cũng phụ thuộc tuyến tính vào x , t . (Tôi có thể cho phép các phụ thuộc phức tạp hơn vào xy(x,t)xty¯(x,t)xtξ(x,t)x,tx - không có động lực lý thuyết mạnh mẽ cho dạng tuyến tính - nhưng tôi không muốn quá phức tạp mọi thứ ở giai đoạn này.)t

Tôi biết các thuật ngữ tìm kiếm ở đây là "các biến ngẫu nhiên", nhưng tất cả tôi đã có thể tìm thấy cho đến nay là các cuộc thảo luận làm thế nào để giảm / loại bỏ nó để dự đoán tốt hơn , nhưng không về cố gắng để dự đoán σ trong điều khoản của biến độc lập. Tôi muốn để ước lượng y 0 , một , b , σ 0 , cd với khoảng tin cậy (hoặc Bayesian tương đương), và nếu có một cách dễ dàng để làm điều đó trong SPSS rất nhiều càng tốt! Tôi nên làm gì? Cảm ơn.y¯ σy0,a,b,σ0,cd


Xem câu hỏi liên quan này để biết một số tài liệu tham khảo, Phương sai như một chức năng của các tham số
Andy W

Bạn đã thử GARCH chưa?
Aksakal 17/05/2015

Mô hình tuyến tính tổng quát là chi nhánh giải quyết vấn đề của bạn. Có một cuốn sách có cùng tiêu đề, rất khuyến khích.
Diego

Câu trả lời:


1

Tôi nghĩ rằng vấn đề đầu tiên của bạn là không còn là một phân phối chuẩn, và làm thế nào những nhu cầu dữ liệu được chuyển thành thể homoscedastic phụ thuộc vào chính xác những gì σ ( x , t ) là. Ví dụ, nếu σ ( x , t ) = một x + b t , thì lỗi là loại tỷ lệ và logarit của các dữ liệu y cần được thực hiện trước khi hồi quy, hoặc, hồi quy được điều chỉnh từ thông thường bình phương nhỏ nhất (OLS) để gia quyền bình phương nhỏ nhất có 1N(0,σ(x,t))σ(x,t)σ(x,t)=ax+bt weight (thay đổi hồi quy thành lỗi loại tỷ lệ tối thiểu). Tương tự, nếu σ ( x , t ) = e một x + b t , người ta sẽ phải lấy logarit của logarit và thoái đó.1/y2σ(x,t)=eax+bt

Tôi nghĩ lý do tại sao dự đoán các loại lỗi được bảo hiểm kém là lần đầu tiên thực hiện bất kỳ hồi quy cũ nào (rên rỉ, điển hình là bình phương nhỏ nhất bình thường, OLS). Và từ biểu đồ dư, tức là, , người ta quan sát hình dạng còn lại, và người ta vẽ biểu đồ tần số của dữ liệu và xem xét điều đó. Sau đó, nếu phần dư là một chùm quạt mở sang phải, người ta sẽ thử mô hình hóa dữ liệu theo tỷ lệ, nếu biểu đồ trông giống như phân rã theo cấp số nhân, người ta có thể thử đáp lại, 1 / y , v.v. , lấy số mũ-y.modely1/y

Bây giờ, đó chỉ là truyện ngắn. Phiên bản dài hơn bao gồm nhiều loại hồi quy khủng khiếp hơn bao gồm hồi quy trung bình Theil, hồi quy bivariate bivariate và hồi quy để giảm thiểu các vấn đề không phù hợp với lỗi không có mối quan hệ phù hợp với đường cong đặc biệt với lỗi lan truyền được giảm thiểu. Đó là người cuối cùng là một Whopper, nhưng, xem nàylàm ví dụ Vì vậy, nó làm cho một sự khác biệt lớn những gì câu trả lời người ta đang cố gắng để có được. Thông thường, nếu một người muốn thiết lập mối quan hệ giữa các biến, OLS thông thường không phải là phương pháp được lựa chọn và hồi quy Theil sẽ là một cải tiến nhanh chóng và bẩn thỉu về điều đó. OLS chỉ giảm thiểu theo hướng y, do đó độ dốc quá nông và phần chặn quá lớn để thiết lập mối quan hệ cơ bản giữa các biến là gì. Nói cách khác, OLS đưa ra ước tính lỗi ít nhất là ay đã cho x, nó không đưa ra ước tính về cách x thay đổi với y. Khi các giá trị r rất cao (0,999999+) sẽ tạo ra rất ít sự khác biệt mà hồi quy người ta sử dụng và OLS trong y gần bằng với OLS trong x, nhưng, khi các giá trị r thấp, OLS trong y rất khác với OLS trong x.

Tóm lại, rất nhiều phụ thuộc vào chính xác lý do là gì mà thúc đẩy phân tích hồi quy ở nơi đầu tiên. Điều đó chỉ ra các phương pháp số cần thiết. Sau khi lựa chọn đó được thực hiện, phần dư sau đó có cấu trúc liên quan đến mục đích của hồi quy và cần được phân tích trong bối cảnh lớn hơn đó.


0

Lệnh mở rộng STATS BREUSCH PAGAN có thể kiểm tra cả phần dư cho độ không đồng nhất và ước tính nó như là một hàm của một số hoặc tất cả các biến hồi quy.


0

Cách tiếp cận chung cho các vấn đề thuộc loại này là tối đa hóa khả năng (thường xuyên) của dữ liệu của bạn.

LL(y0,a,b,σ0,c,d)=i=1nlogϕ(yi,y0+axi+bti,σ0+cxi+dti)
where
ϕ(x,μ,σ)=12πσe-(x-μ)22σ2

Bạn có thể mã biểu thức này thành một hàm trong gói thống kê yêu thích của bạn (tôi thích Python, R hoặc Stata hơn, vì tôi chưa bao giờ lập trình trong SPSS). Sau đó, bạn có thể đưa nó vào trình tối ưu hóa số, sẽ ước tính giá trị tối ưuθ^ các thông số của bạn θ= =(y0,một,b,σ0,c,d).

Nếu bạn cần khoảng tin cậy, trình tối ưu hóa này cũng có thể ước tính ma trận Hessian H của θ(dẫn xuất thứ hai) xung quanh tối ưu. Lý thuyết ước tính khả năng tối đa nói rằng đối với lớnn ma trận hiệp phương sai của θ^ có thể được ước tính là H-1.

Đây là một mã ví dụ trong Python:

import scipy
import numpy as np

# generate toy data for the problem
np.random.seed(1) # fix random seed
n = 1000 # fix problem size
x = np.random.normal(size=n)
t = np.random.normal(size=n)
mean = 1 + x * 2 + t * 3
std = 4 + x * 0.5 + t * 0.6
y = np.random.normal(size=n, loc=mean, scale=std)

# create negative log likelihood
def neg_log_lik(theta):
    est_mean = theta[0] + x * theta[1] + t * theta[2]
    est_std = np.maximum(theta[3] + x * theta[4] + t * theta[5], 1e-10)
    return -sum(scipy.stats.norm.logpdf(y, loc=est_mean, scale=est_std))

# maximize
initial = np.array([0,0,0,1,0,0])
result = scipy.optimize.minimize(neg_log_lik, initial)
# extract point estimation
param = result.x
print(param)
# extract standard error for confidence intervals
std_error = np.sqrt(np.diag(result.hess_inv))
print(std_error)

Lưu ý rằng công thức vấn đề của bạn có thể tạo ra tiêu cực σ, and I had to defend myself from it by brute force replacement of too small σ with 1010.

The result (parameter estimates and their standard errors) produced by the code is:

[ 0.8724218   1.75510897  2.87661843  3.88917283  0.63696726  0.5788625 ]
[ 0.15073344  0.07351353  0.09515104  0.08086239  0.08422978  0.0853192 ]

You can see that estimates are close to their true values, which confirms correctness of this simulation.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.