จะคำนวณ p-value ของพารามิเตอร์สำหรับ ARIMA model ใน R ได้อย่างไร?


23

เมื่อทำการวิจัยอนุกรมเวลาใน R ฉันพบว่าarima ให้เฉพาะค่าสัมประสิทธิ์และข้อผิดพลาดมาตรฐานของโมเดลที่ติดตั้ง อย่างไรก็ตามฉันต้องการได้รับ p-value ของสัมประสิทธิ์

ฉันไม่พบฟังก์ชันใด ๆ ที่ให้ความสำคัญของ coef

ดังนั้นฉันต้องการคำนวณด้วยตัวเอง แต่ฉันไม่รู้ระดับความอิสระในการแจกแจงค่า t หรือ chisq ของสัมประสิทธิ์ ดังนั้นคำถามของฉันคือทำอย่างไรจึงจะได้ค่า p สำหรับสัมประสิทธิ์ของแบบจำลอง arima ที่พอดีใน R?


9
ทำไมคุณต้องการค่า p? การทดสอบความสำคัญของสัมประสิทธิ์ของแบบจำลอง AR ไม่ได้มีประโยชน์อย่างยิ่งเนื่องจากความสำคัญไม่ใช่วิธีที่ดีในการเลือกลำดับของแบบจำลอง ใช้ AIC แทน
Rob Hyndman

1
บ่อยครั้งที่โมเดลมากกว่าหนึ่งเหมาะกับข้อมูลที่ดี โดยทั่วไปแล้วฉันยินดีที่ได้รับการวินิจฉัยมากกว่าหนึ่งครั้ง ดังนั้นถ้าฉันใช้ pacf / acf อยู่แล้ว AIC / BIC (อาจคาดการณ์ความแม่นยำ) และยังคงไม่สามารถเลือกระหว่างสองรุ่น - มีอะไรผิดปกติกับ lookin ที่ค่าสัมประสิทธิ์นัยสำคัญด้วยหรือไม่
hans0l0

คำตอบ:


4

"t value" คืออัตราส่วนของค่าสัมประสิทธิ์ต่อข้อผิดพลาดมาตรฐาน องศาอิสระ (ndf) จะเป็นจำนวนการสังเกตลบด้วยลำดับสูงสุดของความแตกต่างในโมเดลลบด้วยจำนวนสัมประสิทธิ์โดยประมาณ "ค่า F" จะเป็นรูปสี่เหลี่ยมจัตุรัสของ "ค่า t" เพื่อคำนวณความน่าจะเป็นที่แน่นอนคุณจะต้องเรียกใช้ฟังก์ชันไคสแควร์ที่ไม่ได้อยู่ตรงกลางแล้วส่งผ่านค่า F และองศาอิสระ (1, ndf) หรืออาจเรียกการค้นหาฟังก์ชัน F


ขอบคุณมาก! ฉันเขียนมันแบบนี้ ... แต่ฉันประหลาดใจที่เกือบทุกพารามิเตอร์ไม่สำคัญ ... แต่ใน SAS มันบอกว่ามันสำคัญ ... ดังนั้นฉันสงสัยว่ามีข้อผิดพลาดในการเขียนโปรแกรมคำใด ๆ ....
Lisa

สิ่งที่ฉันเขียน: t = ตัวแทน (0,5) std = ตัวแทน (0,5) pvalue = ตัวแทน (0,5) nobs = 369 npara = 5 สำหรับ (i ใน 1: 5) {std [i] = sqrt ( พอดี coef [i] / std [i] pvalue [i] = 1 - pt (t [i], nobs-npara) }var.coef[i,i])t[i]=fit
Lisa

การใช้ผลลัพธ์จากโปรแกรม SAS ที่ไม่ได้อธิบายนั้นแทบจะไม่แสดงหลักฐานความถูกต้องทางสถิติ SAS ไม่ใช่คำพยากรณ์ น่าเสียดายที่ป๊อปอัพ SO-AskAnExpert ที่เปิดตัวในวันที่ 1 เมษายนเป็นวงกลมในกลยุทธ์การใช้เหตุผลของมันใช่มั้ย
DWIN

22

เนื่องจากarimaใช้โอกาสสูงสุดในการประมาณค่าสัมประสิทธิ์จึงเป็นปกติ ดังนั้นหารค่าสัมประสิทธิ์ด้วยข้อผิดพลาดมาตรฐานเพื่อรับค่าสถิติ z จากนั้นคำนวณค่า p นี่คือตัวอย่างด้วย in in พร้อมตัวอย่างแรกจากarima หน้าช่วยเหลือ:

> 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 

บรรทัดสุดท้ายให้ค่า p


H0:coef=0.0H1:coef0.0

คุณสามารถทำได้ผ่านอัตราส่วนความน่าจะเป็นเนื่องจากตัวแบบนั้นถูกประเมินโดยใช้ความน่าจะเป็นในการบันทึก
mpiktas

λ2λχ2nn

10

คุณสามารถใช้coeftestจากlmtestแพ็คเกจ:

> 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.