Yanıtlar:
Nlmegls
paketinden (genelleştirilmiş en küçük kareler) bir göz atın
Regresyondaki hatalar için bir korelasyon profili ayarlayabilirsiniz, örneğin ARMA, vb:
gls(Y ~ X, correlation=corARMA(p=1,q=1))
ARMA (1,1) hataları için.
Adlı gls()
işleve ek olarak, MLE kullanarak paketteki işlevi nlme
de kullanabilirsiniz . İşte her iki işleve de bir örnek.arima()
stats
x <- 1:100
e <- 25*arima.sim(model=list(ar=0.3),n=100)
y <- 1 + 2*x + e
###Fit the model using gls()
require(nlme)
(fit1 <- gls(y~x, corr=corAR1(0.5,form=~1)))
Generalized least squares fit by REML
Model: y ~ x
Data: NULL
Log-restricted-likelihood: -443.6371
Coefficients:
(Intercept) x
4.379304 1.957357
Correlation Structure: AR(1)
Formula: ~1
Parameter estimate(s):
Phi
0.3637263
Degrees of freedom: 100 total; 98 residual
Residual standard error: 22.32908
###Fit the model using arima()
(fit2 <- arima(y, xreg=x, order=c(1,0,0)))
Call:
arima(x = y, order = c(1, 0, 0), xreg = x)
Coefficients:
ar1 intercept x
0.3352 4.5052 1.9548
s.e. 0.0960 6.1743 0.1060
sigma^2 estimated as 423.7: log likelihood = -444.4, aic = 896.81
Arima () işlevinin avantajı, çok daha çeşitli ARMA hata işlemlerine sığabilmenizdir. Tahmin paketinden auto.arima () işlevini kullanırsanız, ARMA hatasını otomatik olarak tanımlayabilirsiniz:
require(forecast)
fit3 <- auto.arima(y, xreg=x)
arima
Seçenek prais
ilk bakışta Stata'dan daha farklı görünüyor , ancak daha esnektir ve tsdiag
AR (1) varsayımınızın gerçekten ne kadar iyi uyduğuna dair güzel bir görsel elde etmek için de kullanabilirsiniz .
Fonksiyonu kullanın GLS paket dan nlme . İşte örnek.
##Generate data frame with regressor and AR(1) error. The error term is
## \eps_t=0.3*\eps_{t-1}+v_t
df <- data.frame(x1=rnorm(100), err=filter(rnorm(100)/5,filter=0.3,method="recursive"))
##Create ther response
df$y <- 1 + 2*df$x + df$err
###Fit the model
gls(y~x, data=df, corr=corAR1(0.5,form=~1))
Generalized least squares fit by REML
Model: y ~ x
Data: df
Log-restricted-likelihood: 9.986475
Coefficients:
(Intercept) x
1.040129 2.001884
Correlation Structure: AR(1)
Formula: ~1
Parameter estimate(s):
Phi
0.2686271
Degrees of freedom: 100 total; 98 residual
Residual standard error: 0.2172698
Model maksimum olasılık kullanılarak takıldığından başlangıç değerlerini sağlamanız gerekir. Varsayılan başlangıç değeri 0'dır, ancak her zaman olduğu gibi yakınsamayı sağlamak için birkaç değer denemek iyidir.
Dr. G'nin işaret ettiği gibi, diğer korelasyon yapılarını da kullanabilirsiniz: ARMA.
Genel olarak, en küçük kareler tahminlerinin, regresyon hatalarının kovaryans matrisi, kimlik matrisinin katları değilse tutarlı olduğunu unutmayın; bu nedenle, modeli belirli kovaryans yapısına sığdırırsanız, öncelikle uygun olup olmadığını test etmeniz gerekir.
Gls çıktısında tahmin kullanabilirsiniz. Bkz.? Predict.gls. Ayrıca korelasyon yapısında "form" terimi ile gözlem sırasını belirleyebilirsiniz. Örneğin:
corr=corAR1(form=~1)
verinin sırasının tablodakiler olduğunu belirtir.
corr=corAR1(form=~Year)
sıra, yıl faktörünün biri olduğunu belirtir. Son olarak, "0.5" değeri corr=corAR1(0.5,form=~1)?
genellikle varyans yapısını temsil ettiği tahmin edilen parametrenin değerine ayarlanır (MA durumunda AR, MA durumunda teta .. .). Rob Hyndman'ın belirttiği gibi kurmak ve optimizasyon için kullanmak isteğe bağlıdır.