Pattern Segmentation

<< Click to Display Table of Contents >>

Navigation:  STRUCTURE Data Files >

Pattern Segmentation

This routine allows you to create sequential segments from overlapping Events. The resulting, completely new Events are created in a new document.

Each new segment (=Event) lasts for a long as the current combination of Codes. The moment an additional Code appears, or one of the current Codes disappears, a new Event is created.

IMPORTANT: This routine only works properly for Codes that are mutually exclusive per Class!
Make sure your Events are aligned properly, before segmentation.

TIP:Take a look at the detailed example described in the section Collect Nested Observations with Different Duration, in which data is logged with the intention of using this segmentation command to get the required data structure for analysis.

Note: Sequential Events in INTERACT always start on the next frame!
So the start time value of a truly sequential Event is 'previous Offset + 1'.

Segmentation

In order to make you understand what this routine does, we prepared the picture below:

PatternSegmentation-TLCSample

Presume you display your selection of Codes and Classes in the Timeline Chart. In this example chart, we drew vertical lines whenever the co-occurring pattern changes. This means, that between two vertical lines a segment holding a specific pattern of co-occurring Codes is located.

For better understanding, each segment in the image has a number. When the same pattern was detected, the same number was used. In the image, you see 26 segments but only 19 different numbers because some identical combinations are found.

The pattern segmentation routine Transform - Events - Create Code segments Btn_CodingSegments creates new Events for each segment and the co-occurring Codes are combined to a single Code.
In this example, 19 different combinations were found.

IMPORTANT: If your data file holds multiple DataSets, make sure you name your DataSets properly, BEFORE you run this routine: The DataSets in the new compilation files are sorted by (offset) time, so their order might differ from the original file!

Create Code segments

The Coding segments are created only for the combinations that exist for the selected of Codes and Classes, just like they would appear in the Timeline Chart:

Open the data file you want to create segments for.

Click Transform - Events - Create Code segments Btn_CodingSegments.

Select the Classes for which the co-occurring patterns should be created.

Click OK to confirm your selection.

Confirm that you want to create those segments

INTERACT now runs through all Events that hold Codes of the selected Classes and creates a new data file that contains the new segment-based Events:

oEach Event represents a segment per co-occurring pattern.

oPer segment, all original Codes are entered as they occurred.

oA new Combined Class contains a combination of all Codes per segment, representing the full description of the co-occurring behaviors.

TIP:Re-arrange the order of your columns BEFORE you run the Create Code segments routine, because the order of your columns determine the order of your combined Codes in the Combined Class.

Order of combined Codes

The pattern segmentation routine automatically combines all Codes per segment using the Move & Combine Codes routine. This results in the new Class called 'Combined'.
You can now give this new class a more appropriate name.

Should you not like the order of the Codes in your combined Codes class, you can re-arrange the Class columns and run the Move & Combine Codes routine again manually.

For statistics, you ONLY need the 'Combined' Class.

 

Note: This Combined' Class is a sequential representation of your originally overlapping Events and can thus be used for a Sequence Analysis over all Codes at once!

Remove Clutter

Due to even the slightest coding inaccuracies and the very precise time handling of this segmentation routine, your new data file may hold a number of single frame segments that are the result of tiny overlaps that should not be there.

Delete Events Without Duration

As long as you did NOT log any Codes without duration in your original data, you can simply remove all single frame Events that are a result of the segmentation.

You can use the Search routine to select all Events without duration with a simple search:

Select ¤Timecode.

Select the option Mark all single point events.

 

Confirm your search with OK.

SearchTimecodeSinglePoint

Hide Events

If you still feel that there are a lot of unlikely and/or very short combinations present, you can hide those Events from the DataSet based statistics in two different way:

oDo NOT select those Code combinations while calling the Timeline Chart.

oRemove occurrences based on their length from the Timeline Chart.

Excluding Events based on their duration, from the Timeline Chart and therefore from the statistics, can be very helpful to clean up your statistics.

In INTERCAT you can exclude extremely short or long Codes, without having to filter them using the Cluster data export. It works like this:

Open the Timeline Chart, by clinking Analysis - Evaluation - Timeline Chart Btn_TLC_Chart_AllData .

Click on the Duration filter Btn_TLC_TimeFilter icon or choose Analysis - Filter events on time from the menu.

The filter Event on duration filter appears:

 

Select the constraint that fits the Events you want to include.

Enter the critical value for the duration, in time code format.

In this example only Events, with a length of at least 1 second, are shown in the Timeline chart. This means that all smaller Events are virtually removed from the view.

Confirm with OK.

TLC_DurationFilter

IMPORTANT: Re-applying the filter with a different value does NOT bring the already removed values back!
To regain a full view of all Events, click the Refresh Btn_TLC_Refresh button.

This makes it possible to subsequently apply multiple filters to the same data, allowing you to e.g. exclude all very short as well as all extremely long Events.

TIP:In combination with the Contingency analysis (e.g. to create latency Events to measure reactions), this functionality allows you to exclude extremely fast or very slow reactions from the statistics afterward.