Table functions

Table functions (funções tabuladas) são ferramentas do arsenal de qualquer desenvolvedor sério de modelos de dinâmica de sistemas, elas representam com facilidade tabelas de valores conhecidos, facilitando e direcionando a modelagem.

Considere, por exemplo, que a Startup está preocupada com o nível de engajamento dos seus usuários. Em apps semelhantes, o nível de engajamento é determinado pelo tempo médio que um usuário se mantém ativo. Para o app, estima-se que o tempo que o usuário fica ativo é definido pelo próprio número de usuários, isto é: quanto maior o tamanho da rede de usuários, maior o tempo médio que o usuário permanece ativo. Assim, o tempo médio de engajamento é estimado pela seguinte tabela:

Número de usuários ativos

Tempo médio de engajamento (meses)

0

0,5

10000

1,2

50000

2,5

100000

8,0

500000

10,0

750000

12,0

1000000

1200

O diagrama de estoque e fluxo deve ser modificado para representar a perda por desinteresse (fluxo) e o número de clientes inativos (estoque):

Perceba, no diagrama anterior, que o fluxo de pessoas desistindo não tem uma variável dinâmica (como a conversão por marketing, por exemplo) calculando o valor em uma etapa anterior. Trata-se apenas de uma forma de representação mais compacta e cabe a você decidir quando é mais apropriado utilizá-la.

O cálculo do fluxo de pessoas desistindo é relativamente simples:

Clientes / tempo médio de engajamento

Este valor representa a taxa por mês com que os clientes desistem do app.

Comece adicionando ao modelo o novo estoque de ClientesInativos, o Link entre Clientes e ClientesInativos e o Loop. O novo modelo deve ficar assim:

O modelo deve ficar como a figura a seguir:

O próximo passo é criar a Table Function para o tempo médio de engajamento dos usuários. O elemento está disponível na paleta de Sistemas Dinâmicos do AnyLogic:

Para preencher os valores, você pode digitar um a um :( ou utilizar Copy/Paste :), bastando copiar a tabela fornecida alguns parágrafos atrás neste tutorial e colar no Table data:

Note que eu tive de apagar a primeira linha, pois ela repetia o meu valor de 0 clientes (isso daria erro de compilação).

Antes de prosseguir duas coisas bacanas deste comando:

  • Em Interpolation você pode selecionar a técnica de interpolação adotada. No caso eu escolhi a Linear que representa uma interpolação linear entre os pontos (as opções estão melhor descritas no Help);

  • O critério que a função deve adotar caso o parâmetro de entrada esteja fora do intervalo da tabela. Neste caso, eu vou selecionar Nearest:

Agora você pode utilizar a função onde quiser do modelo, em particular para equacionar o fluxo taxaDeDesistencias.

Voilá, simule!

Perguntas

  • Você mudaria sua decisão de investir apenas 2 meses em marketing?

  • Você conseguiria explicar o novo comportamento da curva de boca a boca.