मैं समय-भिन्न गुणांक वाले एक डीएलएम को फिट करना चाहता हूं, अर्थात सामान्य रेखीय प्रतिगमन का विस्तार,
।
मेरे पास एक भविष्यवक्ता है () और एक प्रतिक्रिया चर (), 1950 से 2011 तक क्रमशः समुद्री और अंतर्देशीय वार्षिक मछली पकड़ता है। मैं चाहता हूं कि DLM प्रतिगमन मॉडल का पालन करें,
जहां प्रणाली विकास समीकरण है
पेट्रीस एट अल द्वारा डायनामिक लीनियर मॉडल्स विथ आर के पेज 43 से।
कुछ कोडिंग यहाँ,
fishdata <- read.csv("http://dl.dropbox.com/s/4w0utkqdhqribl4/fishdata.csv", header=T)
x <- fishdata$marinefao
y <- fishdata$inlandfao
lmodel <- lm(y ~ x)
summary(lmodel)
plot(x, y)
abline(lmodel)
प्रतिगमन मॉडल के स्पष्ट रूप से अलग-अलग गुणांक यहां अधिक उपयुक्त हैं। मैं १२१ - १२५ पृष्ठों से उनके उदाहरण का अनुसरण करता हूं और इसे अपने स्वयं के डेटा पर लागू करना चाहता हूं। यह उदाहरण से कोडिंग है
############ PAGE 123
require(dlm)
capm <- read.table("http://shazam.econ.ubc.ca/intro/P.txt", header=T)
capm.ts <- ts(capm, start = c(1978, 1), frequency = 12)
colnames(capm)
plot(capm.ts)
IBM <- capm.ts[, "IBM"] - capm.ts[, "RKFREE"]
x <- capm.ts[, "MARKET"] - capm.ts[, "RKFREE"]
x
plot(x)
outLM <- lm(IBM ~ x)
outLM$coef
acf(outLM$res)
qqnorm(outLM$res)
sig <- var(outLM$res)
sig
mod <- dlmModReg(x,dV = sig, m0 = c(0, 1.5), C0 = diag(c(1e+07, 1)))
outF <- dlmFilter(IBM, mod)
outF$m
plot(outF$m)
outF$m[ 1 + length(IBM), ]
########## PAGES 124-125
buildCapm <- function(u){
dlmModReg(x, dV = exp(u[1]), dW = exp(u[2:3]))
}
outMLE <- dlmMLE(IBM, parm = rep(0,3), buildCapm)
exp(outMLE$par)
outMLE
outMLE$value
mod <- buildCapm(outMLE$par)
outS <- dlmSmooth(IBM, mod)
plot(dropFirst(outS$s))
outS$s
मैं plot(dropFirst(outS$s))
अपने स्वयं के डेटा के लिए चौरसाई अनुमानों को प्लॉट करने में सक्षम होना चाहता हूं , जिसे निष्पादित करने में मुझे परेशानी हो रही है।
अपडेट करें
मैं अब इन भूखंडों का उत्पादन कर सकता हूं लेकिन मुझे नहीं लगता कि वे सही हैं।
fishdata <- read.csv("http://dl.dropbox.com/s/4w0utkqdhqribl4/fishdata.csv", header=T)
x <- as.numeric(fishdata$marinefao)
y <- as.numeric(fishdata$inlandfao)
xts <- ts(x, start=c(1950,1), frequency=1)
xts
yts <- ts(y, start=c(1950,1), frequency=1)
yts
lmodel <- lm(yts ~ xts)
#################################################
require(dlm)
buildCapm <- function(u){
dlmModReg(xts, dV = exp(u[1]), dW = exp(u[2:3]))
}
outMLE <- dlmMLE(yts, parm = rep(0,3), buildCapm)
exp(outMLE$par)
outMLE$value
mod <- buildCapm(outMLE$par)
outS <- dlmSmooth(yts, mod)
plot(dropFirst(outS$s))
> summary(outS$s); lmodel$coef
V1 V2
Min. :87.67 Min. :1.445
1st Qu.:87.67 1st Qu.:1.924
Median :87.67 Median :3.803
Mean :87.67 Mean :4.084
3rd Qu.:87.67 3rd Qu.:6.244
Max. :87.67 Max. :7.853
(Intercept) xts
273858.30308 1.22505
अवरोधन चौरसाई अनुमान (V1) lm प्रतिगमन गुणांक से बहुत दूर है। मुझे लगता है कि वे एक दूसरे के निकट होना चाहिए।
lmodel$coef
। मुझे लगता है कि प्लॉट गलत हैं लेकिन मैं गलत हो सकता हूं।