R: Рисование модели Маркова с помощью пакета диаграмм (внесение изменений в диаграмму) - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть следующий код, который рисует график вероятности перехода, используя пакет heemod (для матрицы) и пакет diagram (для рисования). Следующий код генерирует такой график с данными, которые я сгенерировал:

library('heemod')
library('diagram')
mat_dim <- define_transition(
state_names = c('State_A', 'State_B', 'State_C'),
  .18, .73, .09, 
  .12, .10, .78,
  .58, .08, .33);
plot(mat_dim)

Это создает следующий сюжет:

enter image description here

Все мои вопросы возникли из-за моего плохого понимания пакета diagram, и я не могу понять эти, казалось бы, простые приспособления ...

Как я могу переместить стрелку в State_B вокруг (например, 90 градусов в одну сторону), чтобы она не перекрывалась с другими стрелками? Есть ли простой способ сблизить штаты?

1 Ответ

0 голосов
/ 01 сентября 2018

См. ?plotmat.

  • аргумент curve, матрица для управления кривизной переходов "не-я"
  • аргументы self.shiftx и self.shifty для управления позициями самопереходов
  • аргумент self.arrpos для управления позициями стрелок самообслуживания

Это действительно нелегко. Вот то, что я получил много пробных ошибок.

curves <- matrix(nrow = 3, ncol = 3, 0.05)
plot(mat_dim, 
     curve=curves, 
     self.shiftx = c(0.1,-0.1,0), 
     self.shifty = c(-0.1,-0.1,0.15), 
     self.arrpos = c(1,2.1,1))

enter image description here

...