tisane.variable module

tisane.SetUp(name[, order, cardinality, data])

Class for experiment's environment settings and variables

tisane.Unit(name[, data, cardinality])

Class for Units

tisane.variable.Nominal(name[, data])

Class for nominal (a.k.a.

tisane.variable.Numeric(name[, data])

Represents numeric variables

tisane.variable.Ordinal(name, order[, ...])

Represents ordinal measures

class tisane.Unit(name, data=None, cardinality=None, **kwargs)

Bases: tisane.variable.AbstractVariable

Class for Units

A data variable that can have attributes. For example, if you have people in your dataset, and each person has an eye color, height, age, etc., then you should make the person variable a Unit.

In statistics, a Unit can represent either an observational or experimental unit.

Parameters
  • name (str) – The name of the variable. If you have data, this should correspond to the column’s name. The dataset must be in long format.

  • data (DataVector, optional) – For internal use only.

  • cardinality (int, optional) – The number of unique values of the variable. cardinality is optional only if you have a data set. If specified, Tisane will check that the cardinality is correct if you include data in the design. If left unspecified, and data is available, Tisane will try to calculate the cardinality.

  • **kwargs (optional) – Additional keyword arguments are not currently implemented.

cardinality

The number of unique values of the variable.

Type

int

Examples

>>> import tisane as ts
>>> person = ts.Unit(name="person_id")

An example with cardinality: there were 40 unique groups.

>>> group = ts.Unit(name="group_id", cardinality=40)

Methods

assign_cardinality_from_data(data)

associates_with(variable)

Adds a correlation relationship to a data variable.

calculate_cardinality_from_data(data)

causes(effect)

Adds a causes relationship to a data variable.

moderates(moderator, on)

Adds an interaction relationship to a data variable

nominal(name[, data, cardinality, ...])

Creates a categorical data variable that is an attribute of a Unit

numeric(name[, data, number_of_instances])

Creates a variable that takes on integer or real number values

ordinal(name, order[, cardinality, data, ...])

Creates a categorical data variable whose categories are ordered.

add_data

get_cardinality

nests_within

nominal(name, data=None, cardinality=None, number_of_instances=1, **kwargs)

Creates a categorical data variable that is an attribute of a Unit

Parameters
  • name (str) – the name of the variable. If you have data, this should correspond to the column’s name.

  • data (DataVector, optional) – For internal use only.

  • cardinality (int, optional) – The number of unique values that the categorical variable can take. This should correspond to the number of “categories.” If left unspecified, Tisane will infer this from the data.

  • number_of_instances (int, AbstractVariable, or tisane.AtMost, default=1) – This should be the number of measurements of an attribute per unique instance of the associated Unit. For example, if you asked how someone felt 5 different times, the

  • **kwargs (optional) – You can optionally specify the categories using the keyword argument categories. This should be a list. If left unspecified, Tisane will infer this from the data.

Returns

The categorical data variable defined as an attribute of this Unit

Return type

Nominal

See also

numeric

create a numeric data variable

ordinal

create an ordered categorical data variable

Examples

A study asked participants how they felt 5 separate times.

>>> import tisane as ts
>>> participant = ts.Unit(name="participant")
>>> feelings = participant.nominal(name="feeling",
...                                categories=["sad", "happy", "angry", "excited"], # optional, specified here as an example
...                                number_of_instances=5)

The study also collected participants’ eye color.

>>> eye_color = participant.nominal(name="eye_color",
                                    categories=["blue", "brown", "green", "hazel", "gray", "black"])
numeric(name, data=None, number_of_instances=1)

Creates a variable that takes on integer or real number values

Parameters
  • name (str) – The name of the variable. If you have data, this should correspond to the column’s name.

  • data (DataVector, optional) – For internal use only.

  • number_of_instances (int, AbstractVariable, or tisane.AtMost, default=1) – This should be the number of measurements of an attribute per unique instance of the associated Unit. For example, if you measure the reaction time of each person in a study 10 times, then you should enter 10.

Examples

Participants in a study each had their reaction time measured 10 times.

>>> import tisane as ts
>>> participant = ts.Unit(name="participant")
>>> reaction_time = participant.numeric(name="reaction_time",
...                                     number_of_instances=10)
ordinal(name, order, cardinality=None, data=None, number_of_instances=1)

Creates a categorical data variable whose categories are ordered.

Parameters
  • name (str) – the name of the variable. If you have data, this should correspond to the column’s name.

  • order (list) – a list of the categories, in the order desired

  • cardinality (int, optional) – The number of unique values that the variable can take. If left unspecified, Tisane will automatically infer this from the data, if any, or the order argument. cardinality is required if using Tisane without providing data.

  • data (DataVector, optional) – For internal use only.

  • number_of_instances (int, AbstractVariable, or AtMost, default=1) – This should be the number of measurements of an attribute per unique instance of the associated tisane.Unit. For example, if you measure the reaction time of a person 10 times, then you should enter 10.

Returns

The categorical data variable with ordered categories

Return type

Ordinal

See also

numeric

create a numeric data variable

nominal

create an (unordered) categorical variable

Examples

Representing age ranges: <18, 18-30, 31-45, 46-64, 65+

>>> person = ts.Unit("person")
>>> ageRange = person.ordinal(name="age", order=["<18", "18-30", "31-45", "46-64", "65+"])

Representing 3 different treatments of differing amounts of vitamin E:

>>> pig = ts.Unit("Pig", cardinality=72)  # 72 pigs
>>> vitamin_e = pig.ordinal("Evit",
...                         order=["Evit000", "Evit100", "Evit200"],
...                         number_of_instances=1)

Suppose you have 100 people, and you measure using a Likert scale how well they’re feeling 10 times, for each person.

>>> person = ts.Unit("person", cardinality=100) # 100 people
>>> feeling = person.ordinal("well",
...                          order=[1, 2, 3, 4, 5],
...                          number_of_instances=10)
class tisane.variable.SetUp(name, order=None, cardinality=None, data=None, **kwargs)

Bases: tisane.variable.AbstractVariable

Class for experiment’s environment settings and variables

This can represent time, year, etc.

Parameters
  • name (str) – The name of the variable. If you have data, this should correspond to the column’s name. The dataset must be in long format.

  • order (List, optional) – Use a specific ordering of the values of environment settings.

  • cardinality (int, optional) – The number of unique values of the variable.

  • data (DataVector, optional) – For internal use only.

  • **kwargs (optional) – Additional keyword arguments are not currently implemented, i.e., specifying additional keyword arguments will do nothing.

variable

The internal representation of this variable.

Type

Measure

Examples

Time as a SetUp variable:

>>> import tisane as ts
>>> time = ts.SetUp("time")

Year as a SetUp variable, and we know that we have 30 years of data.

>>> year = ts.SetUp("year", cardinality=30)

Suppose we had a sensor in the field somewhere, and the sensor records multiple types of data, such as temperature, humidity, etc., as well as the time for each measurement. We can have timestamp a SetUp variable, and we have a temperature for every time stamp.

>>> sensor = ts.Unit("sensor")
>>> timestamp = ts.SetUp("timestamp")
>>> temperature = sensor.numeric("temperature", number_of_instances=timestamp)

Methods

assign_cardinality_from_data(data)

associates_with(variable)

Adds a correlation relationship to a data variable.

calculate_cardinality_from_data(data)

causes(effect)

Adds a causes relationship to a data variable.

moderates(moderator, on)

Adds an interaction relationship to a data variable

add_data

get_cardinality