问题标签 [markov-chains]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1497 浏览

markov-chains - DTMC Markov Chain - 如何获得平稳向量

对于离散时间马尔可夫链问题,我有以下内容:

1)转移矩阵:

2)初始概率向量:

因此,我编写了以下 SciLab 代码来获取固定向量:

在迭代次数 之后33,得到以下生成的平稳向量:

为了得到上面的固定向量,我必须执行哪些手动计算,而不必将转换矩阵乘以 33 次,然后将结果乘以初始向量?

有人告诉我,计算很简单,但即使阅读了一些书,我也无法意识到该怎么做。

当然,欢迎解释,但最重要的是,我希望得到这个具体案例的确切答案。

0 投票
1 回答
1005 浏览

python - 马尔可夫链python处理

我做了一个基于马尔可夫链的python项目来创建句子。现在我必须做同样的事情,但在处理中。这是我需要帮助的python代码def createProbabilityHash(words)

0 投票
1 回答
741 浏览

python - 在 python 中使用马尔可夫链创建句子

我有一个使用马尔可夫链生成句子的 Python 代码,但对于代码工作,我必须定义 2 个起始词,但我希望第一个词是随机选择的。

这是代码:

0 投票
2 回答
140 浏览

matlab - MATLAB中矩阵的不精确幂

无聊时,我检查了重新分级 MARKOV 链的转移矩阵的平稳定理。所以我定义了一个简单的,例如:

平稳定理说,如果您将转移矩阵计算为非常高的幂,那么您将得到其主成分位于行的平稳矩阵。所以让我们试试:

到目前为止一切都很好。我们继续:

好的。让我们再取一个零:

???事情发生了变化......让我们尝试更多:

这里发生了什么,即使行的总和也不再是 1

Aaaand 没了。

我用 R2011a 试过这个。我想在后台有一些奇特的算法,它近似于矩阵的这种高功率。但这怎么会发生呢?哪种算法在此类计算上执行得如此之快,并在这种极端情况下做出这种行为不端?

0 投票
2 回答
2718 浏览

matlab - 估计马尔可夫转移矩阵的置信区间

我有一系列包含字母 ACGTE 的不同长度的n=400序列。例如,在A之后出现C的概率为:

在此处输入图像描述

并且可以从一组经验序列中计算出来,因此

在此处输入图像描述

假设:在此处输入图像描述

然后我得到一个转换矩阵:

在此处输入图像描述

但我对计算 Phat 的置信区间很感兴趣,有什么想法可以解决这个问题吗?

0 投票
1 回答
767 浏览

r - 优化马尔可夫链转移矩阵计算?

作为中级 R 用户,我知道 for 循环通常可以通过使用类似apply或其他的函数来优化。但是,我不知道可以优化我当前代码以生成马尔可夫链矩阵的函数,该矩阵运行速度非常慢。我是否已经最大限度地提高了速度,或者是否有一些我忽略的东西?我试图通过在给定警报之前计算 24 小时时间段内的出现次数来找到马尔可夫链的转换矩阵。该向量ids包含所有可能的 id(大约 1700)。

原始矩阵如下所示,例如:

这是我尝试处理此问题的代码:

任何人都可以提出任何建议来优化速度吗?

0 投票
1 回答
227 浏览

nlp - 使用一个文本的样式和另一个文本的名词/动词生成一个新文本?

我想生成类似于马尔可夫链方法的方式的合理(或不太合理也可以)无意义文本,但我希望生成文本的名词和动词来自与分析文本不同的来源。

因此,例如,假设文本 1 来自小红帽,我的名词/动词列表类似于此处列出的:名词动词。我正在寻找一种将文本 1 中的部分/全部名词/动词替换为新名词/动词的方法。然后我会从混搭中生成一个新文本(可能使用马尔可夫链方法)。

我猜我需要对文本 1 进行某种初始语法分析,然后可能与插入名词/动词列表的适当编码单词进行交换?

0 投票
2 回答
1187 浏览

statistics - 确定 HMM 的初始概率

因此,我设法估计了特定Hidden Markov Model (HMM)学习数据集中的大部分参数。这些参数是:emission probabilities隐藏状态的 和transition matrix马尔可夫链的 $P$。我用来Gibbs sampling学习的。现在仍然缺少一组参数,即初始概率 $\pi$(链开始位置的概率分布),我想从学习的参数中推断出它。我该怎么做?

另外,$\pi$ 是否与 $P$ 的平稳概率分布相同?

0 投票
1 回答
2276 浏览

r - 仅计算迭代子集的 Gelman 和 Rubins 收敛统计量(coda 包)

我正在尝试为我目前使用 R 包在 R 中运行的 JAGS 分析计算 Gelman 和 Rubin 的收敛诊断rjags

例如,我想评估我的参数的收敛诊断beta。为此,我使用库 coda 和命令:

具有out_2MCMC多个链的 MCMC 列表对象,从而导致正确的输出而没有错误消息或任何内容。但是,由于我使用大量迭代作为老化,我想仅计算迭代子集的收敛诊断(仅老化后的部分!)。

为此,我尝试了:

这导致了以下错误:

因此,我尝试了:

但是,令人惊讶的是,这导致了以下错误:

由于这与我从 JAGS 分析中获得的 MCMC 列表对象相同,并且与我在评估所有迭代的收敛诊断时使用的相同(它工作得非常完美),我在这里看不到问题。

该函数本身仅提供在收敛诊断计算中使用系列的后半部分(迭代)的选项。由于我的老化阶段比这更长,不幸的是这对我来说还不够。

我想这是很明显的事情,我只是想念。有没有人有任何建议或提示?

由于代码很多,我没有提供 R 代码来运行完整的 2MCMC-JAGS 分析。我希望上面的代码能够很好地说明问题,也许有人以前遇到过同样的问题,或者识别出我的语法中的任何错误。但是,如果您觉得需要完整的代码来理解我的问题,我仍然可以提供运行 2MCM JAGS 分析的示例代码。

0 投票
1 回答
916 浏览

string - MATLAB 基本马尔可夫链实现

我正在编写代码模拟一个非常简单的马尔可夫链,以从两个转换矩阵中的任何一个生成 10000 个 6 核苷酸序列(即,如果前一个核苷酸是 A,那么使用这组概率来生成下一个核苷酸,依此类推)。我还获得了通过从所述矩阵中获取相应概率获得的运行产品,但这些产品也没有正确传播。

我知道 MATLAB 可能不会像其他语言那样处理字符串/字符,所以我不完全确定我的代码发生了什么。基本上,我正在抽样,但它似乎没有正确分配。我的代码如下。诚然,它不优雅,但它应该工作......但它没有。考虑到这些转换矩阵,有没有更简单的方法来做到这一点?(显然,到目前为止,该代码仅适用于第一个矩阵 (M1)。)