作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
data1=data.frame("group"=c(1,2,3,4,5),
"t11"=c(0.01,0.32,0.25,0.37,0.11),
"t12"=c(0.48,0.45,0.61,0.29,0.23),
"t13"=c(0.51,0.23,0.14,0.3,0.67),
"t22"=c(0.13,0.91,0.41,0.69,0.42),
"t23"=c(0.87,0.09,0.59,0.31,0.58))
set.seed(1)
data2=data.frame("student"=c(1:20),
"group"=c(sample(1:5,rep=T,20)))
最佳答案
这是一个基本的 R 解决方案。
markov
对于转移矩阵,即 markov <- function(x, n) {
m <- matrix(0,nrow = 3,ncol = 3)
m[lower.tri(m,diag = TRUE)] <- c(unlist(x),1)
r<-(u<-Reduce(`%*%`,replicate(n,m,simplify = FALSE)))[lower.tri(u,diag = TRUE)][-5]
}
data1
, 屈服 data1_10step
,并合并 data1_10step
与 data2
data1_10step <- data1
data1_10step[-1]<-t(apply(data1[-1], 1, markov,10))
data2out <- merge(data2,data1_10step)
> data2out
group student t11 t12 t13 t22 t23
1 1 1 1.000000e-20 5.514340e-09 1.0000000 1.378585e-09 1
2 1 10 1.000000e-20 5.514340e-09 1.0000000 1.378585e-09 1
3 1 3 1.000000e-20 5.514340e-09 1.0000000 1.378585e-09 1
4 1 18 1.000000e-20 5.514340e-09 1.0000000 1.378585e-09 1
5 1 15 1.000000e-20 5.514340e-09 1.0000000 1.378585e-09 1
6 1 19 1.000000e-20 5.514340e-09 1.0000000 1.378585e-09 1
7 2 4 1.125900e-05 2.970037e-01 0.7029850 3.894161e-01 1
8 2 13 1.125900e-05 2.970037e-01 0.7029850 3.894161e-01 1
9 2 14 1.125900e-05 2.970037e-01 0.7029850 3.894161e-01 1
10 2 7 1.125900e-05 2.970037e-01 0.7029850 3.894161e-01 1
11 3 9 9.536743e-07 5.081030e-04 0.9994909 1.342266e-04 1
12 3 6 9.536743e-07 5.081030e-04 0.9994909 1.342266e-04 1
13 3 8 9.536743e-07 5.081030e-04 0.9994909 1.342266e-04 1
14 4 2 4.808584e-05 2.212506e-02 0.9778269 2.446194e-02 1
15 5 12 1.000000e-10 1.227639e-04 0.9998772 1.708020e-04 1
16 5 5 1.000000e-10 1.227639e-04 0.9998772 1.708020e-04 1
17 5 16 1.000000e-10 1.227639e-04 0.9998772 1.708020e-04 1
18 5 17 1.000000e-10 1.227639e-04 0.9998772 1.708020e-04 1
19 5 20 1.000000e-10 1.227639e-04 0.9998772 1.708020e-04 1
20 5 11 1.000000e-10 1.227639e-04 0.9998772 1.708020e-04 1
markov
的进程,您可以矢量化
markov
, IE。,
markov <- Vectorize(function(x, n) {
m <- matrix(0,nrow = 3,ncol = 3)
m[lower.tri(m,diag = TRUE)] <- c(unlist(x),1)
r<-(u<-Reduce(`%*%`,replicate(n,m,simplify = FALSE)))[lower.tri(u,diag = TRUE)][-5]
})
n
来自
1
至
10
通过使用
markov(x,seq(10))
关于马尔可夫链的R模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60624175/
我在学习道路上遇到了一项任务。 对于均值 μ=np 和方差 σ**2=np(1−p) 的二项式分布 X∼Bp,n,我们希望上限概率 P (X≥c⋅μ) 对于 c≥1。三界介绍: Formulas 任务
给定以下马尔可夫矩阵: import numpy, scipy.linalg A = numpy.array([[0.9, 0.1],[0.15, 0.85]]) 平稳概率存在且等于[.6, .4]。
我是一名优秀的程序员,十分优秀!