Я строю цепь Маркова в R, используя библиотеку 'markovchain', я перезапускал код и всегда получал немного разные результаты, несмотря на отсутствие изменений в поступающих данных.
Я протестировал настройкусемя, чтобы попытаться устранить отклонение от случайного семени, и все же получил небольшие отклонения в результате.Может кто-нибудь объяснить, почему это может быть?
Пример кода ниже делает выбор путей клиента, ведущих к двоичному ответу, результаты внизу
Приветствия Iain
#Create input vectors
uid <- c(1:90)
resp <- rep(c(0,1,0,0,0,1,0,0,1,0), times=9)
non_resp <- 1-resp
state1 <- rep(c('Email','DD'), times=45)
state2 <- rep(c(' > Email',' > DD',''), times=30)
state3 <- rep(c(' > Email',' > Email',' > DD','',' > Email',' > DD','','',' > Email'), times=10)
state4 <- rep(c(' > Email',' > DD','',' > Email',' > DD'), times=18)
path <- paste0(state1,state2,state3,state4)
#Create dataframe
df <- data.frame(uid, path, resp, non_resp)
#Build model
model_df <- markov_model(df,
var_path = 'path',
var_conv = 'resp',
var_null = 'non_resp',
out_more = TRUE)
model_df2 <- markov_model(df,
var_path = 'path',
var_conv = 'resp',
var_null = 'non_resp',
out_more = TRUE)
#Look at attribution
model_df$result
model_df2$result
Результат
model_df$result
channel_name total_conversions
1 Email 14.80159
2 DD 12.19841
model_df2$result
channel_name total_conversions
1 Email 14.83336
2 DD 12.16664