সময়-পরিবর্তিত সহগের ডিএলএম ফিট করা


9

আমি সময়-পরিবর্তিত সহগের সাথে একটি ডিএলএম ফিট করতে চাই, অর্থাৎ সাধারণ রৈখিক প্রতিরোধের একটি এক্সটেনশন,

Yটি=θ1+ +θ2এক্স2 ।

আমার ( ) এবং প্রতিক্রিয়া পরিবর্তনশীল ( ), সামুদ্রিক এবং অভ্যন্তরীণ অভ্যন্তরীণ বার্ষিক মাছ যথাক্রমে 1950 - 2011 I আমি ডিএলএম রিগ্রেশন মডেলটি অনুসরণ করতে চাই,এক্স2Yটি

Yটি=θটি,1+ +θটি,2এক্সটি

সিস্টেম বিবর্তন সমীকরণ যেখানে

θটি=জিটিθটি-1

পেট্রিস এট আল দ্বারা আর ডায়নামিক লিনিয়ার মডেলগুলির পৃষ্ঠা 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)

স্পষ্টতই রেগ্রেশন মডেলের সময়-পরিবর্তিত সহগগুলি এখানে আরও উপযুক্ত। আমি 121 - 125 পৃষ্ঠা থেকে তার উদাহরণটি অনুসরণ করি এবং এটি আমার নিজের ডেটাতে প্রয়োগ করতে চাই। এটি উদাহরণ থেকে কোডিং

############ 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 

ইন্টারসেপ্ট স্মুথিংয়ের প্রাক্কলন (ভি 1) lm রিগ্রেশন সহগ থেকে অনেক দূরে। আমি ধরে নিলাম এগুলি একে অপরের নিকটবর্তী হওয়া উচিত।

উত্তর:


2

ঠিক আপনার সমস্যা কি?

আমি খুঁজে পাওয়া একমাত্র ক্ষতি হ'ল দৃশ্যত,

fishdata <- read.csv("http://dl.dropbox.com/s/4w0utkqdhqribl4,
                     fishdata.csv", header=T)

পূর্ণসংখ্যা হিসাবে ডেটা পড়ে। আমি তাদের ভাসতে রূপান্তর করতে হয়েছিল,

x <- as.numeric(fishdata$marinefao)
y <- as.numeric(fishdata$inlandfao)

আমি dlm * ফাংশন প্রার্থনা করতে পারে আগে।


আপনার পরামর্শের জন্য ধন্যবাদ @ এফ। Tusell; আমি আমার প্রশ্ন আপডেট করেছি। উত্পাদিত স্মুথিং অনুমানগুলি অনুমানের খুব কাছাকাছি নয় lmodel$coef। আমি ধরে নিলাম প্লটগুলি ভুল তবে আমি ভুল হতে পারি।
— hgeop

1
লিনিয়ার রিগ্রেশন-এ স্থির বিটার কাছাকাছি opeাল এবং ধাপের ধীর গতির প্রাক্কলন আশা করার কোনও কারণ নেই। বিশেষত, opeাল বন্যভাবে ওঠানামা করা উচিত।
— এফ টিসেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.