나는 미래의 시점에서 상태 벡터 요소를 풀기 위해 각 단계에서 이산 마르코프 체인의 초기 상태 벡터를 늘리려고하고 있습니다. 꽤 귀찮은 것 같습니다.Markov Chain 원하는 벡터 요소를 풀 수있는 초기 상태 벡터 조정
간단한 예를 들어, 기업이 (항목 수준, 수준 올리기, 회사 종료) 3 가지 전환 상태를 가진 초보 수준 직원으로 구성된 초기 상태 벡터를 갖고 있다고 가정합니다. 1000 엔트리 레벨의 직원 초기 상태 벡터는 다음과 같이 정의된다 :
승진, 또는 회사를 떠나는 지, 엔트리 레벨을 나머지의 전환 행렬이 주어진다initialstate <- t(as.matrix(c(1000,0,0)))
두 번 반복 한 후
transitionmatrix <- matrix(c(0.5,0,0,0.2,1,0,0.3,0,1),nrow = 3,ncol = 3)
:
step1state <- initialstate%*%transitionmatrix
(남아 500 엔트리 레벨의 직원)
step2state <- step1state%*%transitionmatrix
(남아 250 엔트리 레벨의 직원)
는 step2state
후, 나는 250 명 엔트리 레벨의 직원이 남아있다, 그러나 나는 1300 명 엔트리 레벨의 직원이 1 단계 2,000 엔트리 레벨의 직원 후 2 단계 후이 작업을 수행한다고 가정 나는 상태 벡터를 증가시킴으로써 추가 직원을 고용한다. 이제는 initialstate
행렬을 1 단계에서 새 채용을 고려하여 증가시키고 2 단계에서 엔트리 레벨 직원 수를 관찰 한 다음 step1state
을 증가시켜 2 단계 목표를 달성하는 번거로운 프로세스가됩니다. 예를 들어
, 이전 마르코프 체인을 실행 한 후, 다시 그것을 실행하고 1 단계에서 800 명 신규 채용을 추가
step1state <- initialstate%*%transitionmatrix + t(as.matrix(c(800,0,0)))
step2state <- step1state%*%transitionmatrix
1 단계 원하는대로 1,300 엔트리 레벨의 직원을 고용하고 있지만, 2 단계는 이제 1350이 필요합니다 초급 직원은 고용했다 (초기 실행시 1,750 명에서 감소). 다음을 만족하는 각 기간 내 채용 목표 :
step1state <- initialstate%*%transitionmatrix + t(as.matrix(c(800,0,0)))
step2state <- step1state%*%transitionmatrix + t(as.matrix(c(1350,0,0)))
어떤 단계에서 내 엔트리 레벨의 직원 대상 변경, 내가 엔트리 레벨의 직원의 수에 따라 이후에 있기 때문에 모든 단계에 대한 마르코프 체인을 다시 실행해야하는 경우 이전 기간의 종업원 수 (전환 확률은 그렇지 않음). R의 MarkovChain 패키지는 각 단계마다 특정 값에 대한 상태 벡터를 풀 수있는 것 같지 않았으므로 기본 마르코프 체인을 실행하고 반복적으로 각 초기 상태 벡터에 새 직원을 추가하여 원하는 대상을 얻습니다. 각 단계.
더 좋은 방법이 있나요? 마르코프 체인은 제가 성취하고자하는 목표에 적합한 모델입니까?