stepsel.modeling.prep.interaction ================================= .. py:module:: stepsel.modeling.prep.interaction .. autoapi-nested-parse:: Preprocessing functions for interaction terms. Functions --------- .. autoapisummary:: stepsel.modeling.prep.interaction.interaction_categorical_numerical stepsel.modeling.prep.interaction.interaction_categorical_categorical stepsel.modeling.prep.interaction.interaction_numerical_numerical Module Contents --------------- .. py:function:: interaction_categorical_numerical(series1: pandas.Series, series2: pandas.Series) Create an interaction term between a categorical and a numerical variable. :param series1: The first series. :type series1: pandas.Series :param series2: The second series. :type series2: pandas.Series :returns: **interaction_df** -- A DataFrame with the interaction terms. :rtype: pandas.DataFrame :raises ValueError: If one (and only one) of the series is not categorical. If one (and only one) of the series is not numerical. .. rubric:: Notes The function will create dummy variables for the categorical variable and multiply them by the numerical variable. The dummy variables will be named "categorical_variable: category * numerical_variable". .. rubric:: Examples >>> import pandas as pd >>> import numpy as np >>> from stepsel.modeling.prep import interaction_categorical_numerical >>> categorical_series = pd.Series(np.random.choice(["A", "B", "C"], size=10), name="categorical").astype("category") >>> numerical_series = pd.Series(np.random.normal(size=10), name="numerical") >>> interaction_categorical_numerical(categorical_series, numerical_series) categorical: A * numerical categorical: B * numerical categorical: C * numerical 0 -0.626453 0.417258 0.619825 1 0.183643 -0.720788 -0.720788 2 0.835979 -0.632650 -0.632650 ... .. py:function:: interaction_categorical_categorical(series1: pandas.Series, series2: pandas.Series) Create an interaction term between two categorical variables. :param series1: The first series. :type series1: pandas.Series :param series2: The second series. :type series2: pandas.Series :returns: **interaction** -- A Series with the interaction terms. :rtype: pandas.Series :raises ValueError: If one series1 is not categorical. If one series2 is not categorical. .. rubric:: Notes The function will create an interaction term between the two categorical variables. The interaction term will be named "categorical_variable1 * categorical_variable2". The interactions will be in form of "category1 * category2". .. rubric:: Examples >>> import pandas as pd >>> import numpy as np >>> from stepsel.modeling.prep import interaction_categorical_categorical >>> categorical_series1 = pd.Series(["A", "B", "C"], name="categorical1").astype("category") >>> categorical_series2 = pd.Series(["X", "Y", "Z"], name="categorical2").astype("category") >>> interaction_categorical_categorical(categorical_series1, categorical_series2) 0 A * X 1 B * Y 2 C * Z Name: categorical1 * categorical2, dtype: category Categories (3, object): ['A * X', 'B * Y', 'C * Z'] .. py:function:: interaction_numerical_numerical(series1: pandas.Series, series2: pandas.Series) Create an interaction term between two numerical variables. :param series1: The first series. :type series1: pandas.Series :param series2: The second series. :type series2: pandas.Series :returns: **interaction** -- A Series with the interaction terms. :rtype: pandas.Series :raises ValueError: If one series1 is not numerical. If one series2 is not numerical. .. rubric:: Notes The function will create an interaction term between the two numerical variables. The interaction term will be named "numerical_variable1 * numerical_variable2". .. rubric:: Examples >>> import pandas as pd >>> import numpy as np >>> from stepsel.modeling.prep import interaction_numerical_numerical >>> numerical_series1 = pd.Series(np.random.normal(size=10), name="numerical1") >>> numerical_series2 = pd.Series(np.random.normal(size=10), name="numerical2") >>> interaction_numerical_numerical(numerical_series1, numerical_series2) 0 -0.626453 1 -0.720788 2 -0.632650 ... Name: numerical1 * numerical2, dtype: float64