问题标签 [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.
markov-chains - DTMC Markov Chain - 如何获得平稳向量
对于离散时间马尔可夫链问题,我有以下内容:
1)转移矩阵:
2)初始概率向量:
因此,我编写了以下 SciLab 代码来获取固定向量:
在迭代次数 之后33
,得到以下生成的平稳向量:
为了得到上面的固定向量,我必须执行哪些手动计算,而不必将转换矩阵乘以 33 次,然后将结果乘以初始向量?
有人告诉我,计算很简单,但即使阅读了一些书,我也无法意识到该怎么做。
当然,欢迎解释,但最重要的是,我希望得到这个具体案例的确切答案。
python - 马尔可夫链python处理
我做了一个基于马尔可夫链的python项目来创建句子。现在我必须做同样的事情,但在处理中。这是我需要帮助的python代码def createProbabilityHash(words)
:
python - 在 python 中使用马尔可夫链创建句子
我有一个使用马尔可夫链生成句子的 Python 代码,但对于代码工作,我必须定义 2 个起始词,但我希望第一个词是随机选择的。
这是代码:
matlab - MATLAB中矩阵的不精确幂
无聊时,我检查了重新分级 MARKOV 链的转移矩阵的平稳定理。所以我定义了一个简单的,例如:
平稳定理说,如果您将转移矩阵计算为非常高的幂,那么您将得到其主成分位于行的平稳矩阵。所以让我们试试:
到目前为止一切都很好。我们继续:
好的。让我们再取一个零:
???事情发生了变化......让我们尝试更多:
这里发生了什么,即使行的总和也不再是 1
Aaaand 没了。
我用 R2011a 试过这个。我想在后台有一些奇特的算法,它近似于矩阵的这种高功率。但这怎么会发生呢?哪种算法在此类计算上执行得如此之快,并在这种极端情况下做出这种行为不端?
matlab - 估计马尔可夫转移矩阵的置信区间
我有一系列包含字母 ACGTE 的不同长度的n=400序列。例如,在A之后出现C的概率为:
并且可以从一组经验序列中计算出来,因此
假设:
然后我得到一个转换矩阵:
但我对计算 Phat 的置信区间很感兴趣,有什么想法可以解决这个问题吗?
r - 优化马尔可夫链转移矩阵计算?
作为中级 R 用户,我知道 for 循环通常可以通过使用类似apply
或其他的函数来优化。但是,我不知道可以优化我当前代码以生成马尔可夫链矩阵的函数,该矩阵运行速度非常慢。我是否已经最大限度地提高了速度,或者是否有一些我忽略的东西?我试图通过在给定警报之前计算 24 小时时间段内的出现次数来找到马尔可夫链的转换矩阵。该向量ids
包含所有可能的 id(大约 1700)。
原始矩阵如下所示,例如:
这是我尝试处理此问题的代码:
任何人都可以提出任何建议来优化速度吗?
nlp - 使用一个文本的样式和另一个文本的名词/动词生成一个新文本?
我想生成类似于马尔可夫链方法的方式的合理(或不太合理也可以)无意义文本,但我希望生成文本的名词和动词来自与分析文本不同的来源。
因此,例如,假设文本 1 来自小红帽,我的名词/动词列表类似于此处列出的:名词、动词。我正在寻找一种将文本 1 中的部分/全部名词/动词替换为新名词/动词的方法。然后我会从混搭中生成一个新文本(可能使用马尔可夫链方法)。
我猜我需要对文本 1 进行某种初始语法分析,然后可能与插入名词/动词列表的适当编码单词进行交换?
statistics - 确定 HMM 的初始概率
因此,我设法估计了特定Hidden Markov Model (HMM)
学习数据集中的大部分参数。这些参数是:emission probabilities
隐藏状态的 和transition matrix
马尔可夫链的 $P$。我用来Gibbs sampling
学习的。现在仍然缺少一组参数,即初始概率 $\pi$(链开始位置的概率分布),我想从学习的参数中推断出它。我该怎么做?
另外,$\pi$ 是否与 $P$ 的平稳概率分布相同?
r - 仅计算迭代子集的 Gelman 和 Rubins 收敛统计量(coda 包)
我正在尝试为我目前使用 R 包在 R 中运行的 JAGS 分析计算 Gelman 和 Rubin 的收敛诊断rjags
。
例如,我想评估我的参数的收敛诊断beta
。为此,我使用库 coda 和命令:
具有out_2MCMC
多个链的 MCMC 列表对象,从而导致正确的输出而没有错误消息或任何内容。但是,由于我使用大量迭代作为老化,我想仅计算迭代子集的收敛诊断(仅老化后的部分!)。
为此,我尝试了:
这导致了以下错误:
因此,我尝试了:
但是,令人惊讶的是,这导致了以下错误:
由于这与我从 JAGS 分析中获得的 MCMC 列表对象相同,并且与我在评估所有迭代的收敛诊断时使用的相同(它工作得非常完美),我在这里看不到问题。
该函数本身仅提供在收敛诊断计算中使用系列的后半部分(迭代)的选项。由于我的老化阶段比这更长,不幸的是这对我来说还不够。
我想这是很明显的事情,我只是想念。有没有人有任何建议或提示?
由于代码很多,我没有提供 R 代码来运行完整的 2MCMC-JAGS 分析。我希望上面的代码能够很好地说明问题,也许有人以前遇到过同样的问题,或者识别出我的语法中的任何错误。但是,如果您觉得需要完整的代码来理解我的问题,我仍然可以提供运行 2MCM JAGS 分析的示例代码。
string - MATLAB 基本马尔可夫链实现
我正在编写代码模拟一个非常简单的马尔可夫链,以从两个转换矩阵中的任何一个生成 10000 个 6 核苷酸序列(即,如果前一个核苷酸是 A,那么使用这组概率来生成下一个核苷酸,依此类推)。我还获得了通过从所述矩阵中获取相应概率获得的运行产品,但这些产品也没有正确传播。
我知道 MATLAB 可能不会像其他语言那样处理字符串/字符,所以我不完全确定我的代码发生了什么。基本上,我正在抽样,但它似乎没有正确分配。我的代码如下。诚然,它不优雅,但它应该工作......但它没有。考虑到这些转换矩阵,有没有更简单的方法来做到这一点?(显然,到目前为止,该代码仅适用于第一个矩阵 (M1)。)