R 跨参与者构建马尔可夫链
我不熟悉使用马尔可夫链,有一个问题我还没有找到解决方案。我试图将马尔可夫链拟合到数据集,以获得人们从一种状态切换到另一种状态的转移概率,我想知道在构建模型时如何考虑个体参与者的影响 下面是一个例子:R 跨参与者构建马尔可夫链,r,markov-chains,R,Markov Chains,我不熟悉使用马尔可夫链,有一个问题我还没有找到解决方案。我试图将马尔可夫链拟合到数据集,以获得人们从一种状态切换到另一种状态的转移概率,我想知道在构建模型时如何考虑个体参与者的影响 下面是一个例子: #Here's a dataframe with participant numbers and their state: A, B, C DF <- data.frame(pp = rep(1:10, each = 3), state = sample(rep(
#Here's a dataframe with participant numbers and their state: A, B, C
DF <- data.frame(pp = rep(1:10, each = 3),
state = sample(rep(LETTERS[1:3], each = 10)))
> head(DF)
pp state
1 1 A
2 1 A
3 1 B
4 2 A
5 2 B
6 2 B
我是否需要为每个参与者单独拟合一个过渡矩阵,然后对他们进行平均?如果是这样的话,我该怎么办
此外,在这种情况下,您将如何处理参与者之间不相同的转换矩阵?例如,一些参与者可能在状态A和状态C之间没有任何转换,而其他参与者可能:
#Example of Participant 1
A B
A 0.25 0.50
B 0.15 0.55
#Example of Participant 2
A C
A 0.50 0.25
C 0.25 0.50
如果您仅在向量上运行
markovchainFit
,您将得到以下估计值:
> markovchainFit(DF$state)$estimate
MLE Fit
A 3 - dimensional discrete Markov Chain defined by the following states:
A, B, C
The transition matrix (by rows) is defined as follows:
A B C
A 0.2000000 0.3000000 0.5000000
B 0.6000000 0.1000000 0.3000000
C 0.2222222 0.5555556 0.2222222
但是您可以使用split
将状态向量分解为基于pp
列的向量列表,然后将其传递给markovchainFit
:
> markovchainFit(split(DF$state,DF$pp))$estimate
MLE Fit
A 3 - dimensional discrete Markov Chain defined by the following states:
A, B, C
The transition matrix (by rows) is defined as follows:
A B C
A 0.4000000 0.2000000 0.4000000
B 0.7500000 0.0000000 0.2500000
C 0.1428571 0.5714286 0.2857143
我认为,如果你用“NA”分隔各个状态,那么
markovchainFit
会将向量解释为一系列的短转换。有关详细信息,请参阅帮助。您还可以向其传递一个列表。这将给你一个全局过渡问题——一个零模型,你可以检验任何人都是不同的假设(不知何故…)@Spacedman谢谢!我只对全局转移概率感兴趣,我只是不想包括从未发生过的转移(例如,在我的示例中,参与者1和参与者2之间从B到A的转移)。因此,通过将我的数据框转换为一个列表,将每个参与者作为列表中的一个单独项目来工作?一些简单的测试似乎同意是的,除了一个列表参数,我没有得到一个对数可能性(什么?),但如果我使用NA,我会这样做。e、 g.markovchainFit(c(1,2,1,NA,1,1,1,2))
和markovchainFit(list(c(1,2,1),c(1,1,1,2))
-相同的输出,但在第二种情况下没有loglik…出于某种原因,这里的代码不添加log likellihood,除非数据是一个简单的向量。不管怎样,我们现在已经破解了吗?
> markovchainFit(split(DF$state,DF$pp))$estimate
MLE Fit
A 3 - dimensional discrete Markov Chain defined by the following states:
A, B, C
The transition matrix (by rows) is defined as follows:
A B C
A 0.4000000 0.2000000 0.4000000
B 0.7500000 0.0000000 0.2500000
C 0.1428571 0.5714286 0.2857143