Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Visualizing concurrent events in process_map #6

Open
ghost opened this issue Sep 2, 2019 · 1 comment
Open

Visualizing concurrent events in process_map #6

ghost opened this issue Sep 2, 2019 · 1 comment
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@ghost
Copy link

ghost commented Sep 2, 2019

I am analyzing an event log in which for a number of traces, several activities are initiated at the same time; there is no delay between these events. I have an issue when trying to display this event log in a process map. More specifically, the time between events that are initiated at the same time is displayed as negative. I deduced that this is the negative of the processing time of the previous event.

Am I perhaps doing something wrong with the activity instance?

eventdata_combined <- eventdata_combined[, activity_instance := 1:.N]

#From wide to long
eventdata_combined <- as.data.table(gather(eventdata_combined, time_type, timestamp,
                                           c("start_time", "completed_time"), factor_key=TRUE))

So the rows for start_time and completed_time for one event have the same activity instance number.

@gertjanssenswillen
Copy link
Member

This behaviour is as expected actually. The point is that process maps are not suitable for visualizing event logs with a lot of concurrent events. If A, B and C start at the same time, the process map will always show them as a sequence, depending which comes first in the data. Let's say A > B > C. The flow time from A to B will be start(B) - end(A), and since end(A) = start(A) + duration(A), flow(A,B) = start(B) - start(A) - duration(A). And since start(A) = start(B), flow(A,B) = -duration(A).

Other process mapping tools, such as disco, detect if two activities are concurrent, and will show them not as a sequence, but as follows:

image

In bupaR, we decided no to go for this, but this can get ambigous. Unless you keep a close look on the number, it seems there is a choice between A, B and C. In bigger maps, choices and concurrency can get mixed up. Process maps in bupaR consistently show arrows between the last and next activity, regardless whether they overlap or not.

As an alternative, you might want to look at more advanced discovery algorithms using pm4py or heuristicsminer

https://bupaverse.github.io/pm4py/
https://bupaverse.github.io/heuristicsmineR/

(For the former, you need to have a Python installation)

If you have any suggestion how to better cope with this issue in a process map, please let us know! For example, what would you expect the process map to be like?

@gertjanssenswillen gertjanssenswillen transferred this issue from bupaverse/bupaR Sep 23, 2019
@fmannhardt fmannhardt added enhancement New feature or request help wanted Extra attention is needed labels Oct 18, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants