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


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.