Làm cách nào để tính giá trị p của các tham số cho mô hình ARIMA trong R?


23

Khi thực hiện nghiên cứu chuỗi thời gian trong R, tôi thấy rằng arima chỉ cung cấp các giá trị hệ số và các lỗi tiêu chuẩn của mô hình được trang bị. Tuy nhiên, tôi cũng muốn lấy giá trị p của các hệ số.

Tôi không tìm thấy bất kỳ chức năng nào cung cấp tầm quan trọng của coef.

Vì vậy, tôi muốn tự mình tính toán nó, nhưng tôi không biết mức độ tự do trong phân phối t hoặc chisq của các hệ số. Vì vậy, câu hỏi của tôi là làm thế nào để có được các giá trị p cho các hệ số của mô hình arima được trang bị trong R?


9
Tại sao bạn muốn giá trị p? Các thử nghiệm quan trọng cho các hệ số của mô hình AR không đặc biệt hữu ích vì tầm quan trọng không phải là một cách tốt để chọn thứ tự mô hình. Sử dụng AIC thay thế.
Rob Hyndman

1
Thường có nhiều hơn một mô hình phù hợp với dữ liệu. Vì vậy, thông thường tôi rất vui khi có nhiều hơn một chẩn đoán. Vì vậy, nếu tôi đã sử dụng pacf / acf, AIC / BIC (cũng có thể dự báo độ chính xác) và vẫn không thể chọn giữa hai mô hình - có điều gì sai với lookin về ý nghĩa hệ số không?
hans0l0

Câu trả lời:


4

"Giá trị t" là tỷ lệ của hệ số với sai số chuẩn. Độ tự do (ndf) sẽ là số lượng quan sát trừ đi thứ tự chênh lệch tối đa trong mô hình trừ đi số lượng các hệ số ước tính. "Giá trị F" sẽ là bình phương của "giá trị t" Để tính toán chính xác xác suất, bạn sẽ phải gọi một hàm chi bình phương không trung tâm và chuyển vào giá trị F và bậc tự do (1, ndf) hoặc có lẽ chỉ đơn giản gọi một tra cứu chức năng F.


Cảm ơn nhiều! Tôi đã viết nó như thế này ... Nhưng thật ngạc nhiên là hầu như tất cả các tham số đều không đáng kể ... Nhưng trong SAS nó nói rằng chúng rất quan trọng ... Vì vậy, tôi nghi ngờ nếu có bất kỳ lỗi nào trong các từ lập trình của tôi ....
Lisa

những gì tôi đã viết: t = rep (0,5) std = rep (0,5) pvalue = rep (0,5) nobs = 369 npara = 5 for (i in 1: 5) {std [i] = sqrt ( fit coef [i] / std [i] pvalue [i] = 1 - pt (t [i], nobs-npara)}var.coef[i,i])t[i]=fit
Lisa

Việc sử dụng các kết quả từ một chương trình SAS không được mô tả hầu như không tạo thành bằng chứng về tính chính xác của thống kê. SAS không phải là một nhà tiên tri. Quá tệ, cửa sổ bật lên SO-AskAnExpert được giới thiệu vào ngày 1 tháng 4 rất tuần hoàn trong chiến lược lý luận của nó, eh.
DWin

22

Kể từ khi arimasử dụng khả năng tối đa để ước tính, các hệ số là bình thường. Do đó, chia hệ số cho các lỗi tiêu chuẩn của chúng để lấy số liệu thống kê z và sau đó tính giá trị p. Dưới đây là ví dụ với trong R với ví dụ đầu tiên từ arima trang trợ giúp:

> aa <- arima(lh, order = c(1,0,0))
> aa

Call:
arima(x = lh, order = c(1, 0, 0))

Coefficients:
         ar1  intercept
      0.5739     2.4133
s.e.  0.1161     0.1466

sigma^2 estimated as 0.1975:  log likelihood = -29.38,  aic = 64.76
> (1-pnorm(abs(aa$coef)/sqrt(diag(aa$var.coef))))*2
         ar1    intercept 
1.935776e-07 0.000000e+00 

Dòng cuối cùng cho các giá trị p.


chỉ để hoàn thành: đó là giá trị p của kiểm tra giả thuyết đơn biến: so với Sẽ rất thú vị khi kiểm tra tầm quan trọng của nhiều hệ số với nhau, thông qua hiệu chỉnh Bonferroni hoặc Hotelling. H 1 : c o e f 0,0H0:coef= =0,0H1:coef0,0
Tommaso Guerrini

Bạn có thể làm điều này thông qua tỷ lệ khả năng đăng nhập, vì mô hình được ước tính bằng khả năng đăng nhập.
mpiktas

Đúng vậy, là tỷ lệ khả năng tuân theo phân phối khi đi đến , đó là điều tôi nhớ từ một khóa học nào đó .. Tôi tự hỏi là gì trong bối cảnh chuỗi thời gian- 2 λ χ 2 n nλ-2λχ2nn
Tommaso Guerrini

10

Bạn cũng có thể sử dụng coeftesttừ lmtestgói:

> aa <- arima(lh, order = c(1,0,0))

> coeftest(aa)

z test of coefficients:

          Estimate Std. Error z value  Pr(>|z|)    
ar1        0.57393    0.11614  4.9417 7.743e-07 ***
intercept  2.41329    0.14661 16.4602 < 2.2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1
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.