首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中二阶转移矩阵(马尔可夫过程)的拟合与评价?

R中二阶转移矩阵(马尔可夫过程)的拟合与评价?
EN

Stack Overflow用户
提问于 2015-04-19 10:09:22
回答 1查看 1.6K关注 0票数 0

我试图建立一个二阶马尔可夫链模型,现在我试图从以下数据中寻找转移矩阵。

代码语言:javascript
复制
dat<-data.frame(replicate(20,sample(c("A", "B", "C","D"), size = 100, replace=TRUE)))

现在,我知道如何使用函数markovchainFit(dat)markovchain包中拟合一阶马尔可夫转移矩阵。

有任何方法来拟合二阶转移矩阵吗?

如何评价马尔可夫链模型?也就是说,我应该选择一阶模型还是二阶模型?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-31 01:24:23

这个函数应该产生一个马尔可夫链转移矩阵到你想要的任何滞后顺序。

代码语言:javascript
复制
dat<-data.frame(replicate(20,sample(c("A", "B", "C","D"), size = 100, replace=TRUE)))

Markovmatrix <- function(X,l=1){
  tt <- table(X[,-c((ncol(X)-l+1):ncol(X))] , c(X[,-c(1:l)]))
  tt <- tt / rowSums(tt)
  return(tt)
}


Markovmatrix(as.matrix(dat),1)
Markovmatrix(as.matrix(dat),2)

l是滞后的地方。

例如二阶矩阵,输出是:

代码语言:javascript
复制
         A         B         C         D
  A 0.2422803 0.2185273 0.2446556 0.2945368
  B 0.2426304 0.2108844 0.2766440 0.2698413
  C 0.2146119 0.2716895 0.2123288 0.3013699
  D 0.2480000 0.2560000 0.2320000 0.2640000

关于如何测试什么样的订单模型。有几个建议。Gottman和Roy (1990)在他们的序贯分析入门书中提出的一种方法是使用信息值。这方面有一章--这一章的大部分都可以在网上找到。

您还可以执行似然比卡方检验.这是非常类似于卡方检验,因为你是比较观察到的预期频率的跃迁。然而,公式如下:

自由度是码数减去1的平方。在您的例子中,您有4个代码,因此(4-1)^2 = 9,然后可以查找相关的p-值。

我希望这能帮到你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29728436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档