Làm thế nào tôi có thể tính bình phương R của hồi quy với các lỗi arima bằng R?


8

Nếu tôi có một đối tượng arima như a:

set.seed(100)
x1 <- cumsum(runif(100))
x2 <- c(rnorm(25, 20), rep(0, 75))
x3 <- x1 + x2

dummy = c(rep(1, 25), rep(0, 75))

a <- arima(x3, order=c(0, 1, 0), xreg=dummy)
print(a)

.

Series: x3 
ARIMA(0,1,0)                    

Call: arima(x = x3, order = c(0, 1, 0), xreg = dummy) 

Coefficients:
        dummy
      17.7665
s.e.   1.1434

sigma^2 estimated as 1.307:  log likelihood = -153.74
AIC = 311.48   AICc = 311.6   BIC = 316.67

Làm thế nào để tính R bình phương của hồi quy này?

Câu trả lời:


16

R2

cor(fitted(a),x3)^2

Các fitted()chức năng sẽ chỉ làm việc nếu bạn đã tải các forecastgói, nhưng có vẻ như bạn đã làm điều đó đánh giá từ đầu ra trong câu hỏi của bạn.

Trong trường hợp của bạn, bạn không có lỗi ARMA, nhưng bạn có sự khác biệt. Vì vậy, nó tương đương với mô hình tuyến tính

b <- lm(diff(x3) ~ diff(dummy) - 1)
summary(b)

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
diff(dummy)   17.766      1.149   15.46   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

Residual standard error: 1.149 on 98 degrees of freedom
Multiple R-squared: 0.7092,     Adjusted R-squared: 0.7062 
F-statistic:   239 on 1 and 98 DF,  p-value: < 2.2e-16 

R2

R2R2


Được rồi, cảm ơn vì câu trả lời hữu ích. Có lẽ tôi nên đọc lại câu hỏi của mình, nhưng bạn đã trả lời một cách hoàn hảo :)
đánh dấu
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.