{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "convert_data_wide_to_long.ipynb", "provenance": [], "collapsed_sections": [], "include_colab_link": true }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.7" } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "\"Open" ] }, { "cell_type": "markdown", "metadata": { "id": "KGmrniFLZ_rx" }, "source": [ "# Convert Data from Wide to Long Format" ] }, { "cell_type": "markdown", "metadata": { "id": "RIC-iofnaMyn" }, "source": [ "`xlogit` processes data only in long format. However, converting data from wide to long format is a relatively easy task and `xlogit` provides a convinient tool for this purpose. In this tutorial, we'll explain the reshaping using two examples. Let's start by importing the `pandas` and `numpy` python packages." ] }, { "cell_type": "code", "metadata": { "id": "fueNeIAbv8sW" }, "source": [ "import pandas as pd\n", "import numpy as np" ], "execution_count": 1, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "w8tpAUVvBajn" }, "source": [ "In case you haven't installed `xlogit`, you can install it using `pip` as follows:" ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "bc5G_n5yBhyL", "outputId": "3eb7d947-2d8a-4847-e1f8-ee28613b25f8" }, "source": [ "!pip install xlogit" ], "execution_count": 2, "outputs": [ { "output_type": "stream", "text": [ "Collecting xlogit\n", " Downloading https://files.pythonhosted.org/packages/60/5f/9bc576d180c366af77bc04e268536e9e34be23c52a520918aa0cb56b438e/xlogit-0.1.3-py3-none-any.whl\n", "Requirement already satisfied: scipy>=1.0.0 in /usr/local/lib/python3.7/dist-packages (from xlogit) (1.4.1)\n", "Requirement already satisfied: numpy>=1.13.1 in /usr/local/lib/python3.7/dist-packages (from xlogit) (1.19.5)\n", "Installing collected packages: xlogit\n", "Successfully installed xlogit-0.1.3\n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "id": "pHFbKUIkafhX" }, "source": [ "## Basic example" ] }, { "cell_type": "markdown", "metadata": { "id": "kpaNiP4VahUp" }, "source": [ "This example provides a quick intuition about the format conversion using `pandas`." ] }, { "cell_type": "markdown", "metadata": { "id": "bLhROdletgFE" }, "source": [ "![image.png](data:image/png;base64,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)" ] }, { "cell_type": "markdown", "metadata": { "id": "-Lbu6mGro4Xl" }, "source": [ "Let's create some artificial data in wide format for our example. Let's assume that our dataset contains choices among three transportation modes (i.e. car, train, and bus) for two individuals identified by `id`. We assume we collected the income of the individuals, and the time and cost of the transportation modes and saved the data in the `df_wide` dataframe as follows:" ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 112 }, "id": "cHVYGTFjZ4km", "outputId": "33d409ed-77e8-4816-9c4c-e47a2713ab4e" }, "source": [ "# Create example dataset in wide format\n", "df_wide = pd.DataFrame({'id': [1, 2],\n", " 'income': [4, 2],\n", " 'time_car': [2, 1],\n", " 'time_train': [2, 4],\n", " 'time_bus': [4, 5],\n", " 'cost_car': [3, 7],\n", " 'cost_train': [6, 8],\n", " 'cost_bus': [9, 2],\n", " 'choice': ['bus', 'car']\n", " })\n", "df_wide" ], "execution_count": 3, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idincometime_cartime_traintime_buscost_carcost_traincost_buschoice
014224369bus
122145782car
\n", "
" ], "text/plain": [ " id income time_car time_train ... cost_car cost_train cost_bus choice\n", "0 1 4 2 2 ... 3 6 9 bus\n", "1 2 2 1 4 ... 7 8 2 car\n", "\n", "[2 rows x 9 columns]" ] }, "metadata": { "tags": [] }, "execution_count": 3 } ] }, { "cell_type": "markdown", "metadata": { "id": "noXqdOh0crsq" }, "source": [ "The dataframe `df_wide` is in wide format because every row represent a sample in the dataset. The variables `time` and `cost` have one column for each choice alternative, as these as alternative-specific variables. After parsing these data to long format, we want the alternative-specific variables to be in rows and not in columns; therefore, in long format every row is associated with an alternative." ] }, { "cell_type": "markdown", "metadata": { "id": "F_JmscYExU6j" }, "source": [ "To convert `df_wide` to long format we use the `wide_to_long` function provided by `xlogit`." ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 237 }, "id": "Pyg0jFaBjw5p", "outputId": "e29909cd-b410-4167-e07c-440c57e116e4" }, "source": [ "from xlogit.utils import wide_to_long\n", "df_long = wide_to_long(df_wide, id_col='id', alt_list=['car', 'train', 'bus'],\n", " varying=['time', 'cost'], alt_name='alt', sep='_')\n", "\n", "df_long" ], "execution_count": 4, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idalttimecostincomechoice
01bus494bus
11car234bus
21train264bus
32bus522car
42car172car
52train482car
\n", "
" ], "text/plain": [ " id alt time cost income choice\n", "0 1 bus 4 9 4 bus\n", "1 1 car 2 3 4 bus\n", "2 1 train 2 6 4 bus\n", "3 2 bus 5 2 2 car\n", "4 2 car 1 7 2 car\n", "5 2 train 4 8 2 car" ] }, "metadata": { "tags": [] }, "execution_count": 4 } ] }, { "cell_type": "markdown", "metadata": { "id": "6WgA2bnxnTQQ" }, "source": [ "In the long format shown above, every three rows represent an individual and every row represents an alternative. An additional column called `alt` was created to indicate the alternative associated to a row, and now the variables `time` and `cost` have their values in different rows insted of columns. The rest of the variables (i.e. `id`, `choice`, and `income`) are simply repeated across rows as they are associated to the same individual. For instance, the individual with `id` equal to `1` has an `income` of `4`, which is repeated throughout the rows of this individual. This data in long format can be now processed by `xlogit`.\n", "\n", "The `wide_to_long` function takes as input the following parameters:\n", "- `dataframe`: The wide-format DataFrame.\n", "- `id_col` : Name of the column that uniquely identifies each sample.\n", "- `alt_list`: List of alternatives.\n", "- `alt_name`: Name of the alternatives column in returned dataset.\n", "- `varying`: List of column names that vary across alternatives.\n", "- `sep`: Separator of column names that vary across alternatives.\n", "- `alt_is_prefix`: True if alternative is prefix of the variable name or False if it is suffix.\n", "- `empty_val`: Value to fill when alternative not available for a certain variable.\n", "\n", "The current version of `xlogit` only supports wide to long conversion for `Pandas` dataframes. For additional details about this function, consult the documentation at: https://xlogit.readthedocs.io/en/latest/api/utils.html#xlogit.utils.wide_to_long" ] }, { "cell_type": "markdown", "metadata": { "id": "L_AvJKDSt7f3" }, "source": [ "## Admissions dataset" ] }, { "cell_type": "markdown", "metadata": { "id": "DXCXSB73wmMw" }, "source": [ "This is a dataset used in a binary logit example in [UCLA IDRE's website](https://stats.idre.ucla.edu/stata/dae/logistic-regression/). The idea is to predict model the admission to a program based on the candidate's gre, gpa and school's rank. The outcome variable is `admit`, which is equal to 1 when the student was admited or zero otherwise. Note that we added an `id` column to uniquely identify each row.\n", "> Note that this dataset does not contain alternative-specific variables. All the explanatory variables are individual specific." ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 424 }, "id": "NE08CpzBvulM", "outputId": "8cea8abf-2c8a-4009-e5f2-fa37fea3bfab" }, "source": [ "import pandas as pd\n", "\n", "df_wide = pd.read_stata(\"https://stats.idre.ucla.edu/stat/stata/dae/binary.dta\")\n", "df_wide['id'] = np.arange(len(df_wide)) # Add unique identifier column\n", "df_wide" ], "execution_count": 5, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
admitgregparankid
00.0380.03.613.00
11.0660.03.673.01
21.0800.04.001.02
31.0640.03.194.03
40.0520.02.934.04
..................
3950.0620.04.002.0395
3960.0560.03.043.0396
3970.0460.02.632.0397
3980.0700.03.652.0398
3990.0600.03.893.0399
\n", "

400 rows × 5 columns

\n", "
" ], "text/plain": [ " admit gre gpa rank id\n", "0 0.0 380.0 3.61 3.0 0\n", "1 1.0 660.0 3.67 3.0 1\n", "2 1.0 800.0 4.00 1.0 2\n", "3 1.0 640.0 3.19 4.0 3\n", "4 0.0 520.0 2.93 4.0 4\n", ".. ... ... ... ... ...\n", "395 0.0 620.0 4.00 2.0 395\n", "396 0.0 560.0 3.04 3.0 396\n", "397 0.0 460.0 2.63 2.0 397\n", "398 0.0 700.0 3.65 2.0 398\n", "399 0.0 600.0 3.89 3.0 399\n", "\n", "[400 rows x 5 columns]" ] }, "metadata": { "tags": [] }, "execution_count": 5 } ] }, { "cell_type": "markdown", "metadata": { "id": "eWJ6qflTyoDL" }, "source": [ "Now we can proceed to convert the data to long format as follows:" ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 424 }, "id": "XxOGIS8pyrg_", "outputId": "ad16bf39-059b-49d3-9d31-6b77258e2f58" }, "source": [ "df = wide_to_long(df_wide, id_col='id', alt_list=[0, 1], alt_name='alt')\n", "df" ], "execution_count": 6, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idaltadmitgregparank
0000.0380.03.613.0
1010.0380.03.613.0
2101.0660.03.673.0
3111.0660.03.673.0
4201.0800.04.001.0
.....................
79539710.0460.02.632.0
79639800.0700.03.652.0
79739810.0700.03.652.0
79839900.0600.03.893.0
79939910.0600.03.893.0
\n", "

800 rows × 6 columns

\n", "
" ], "text/plain": [ " id alt admit gre gpa rank\n", "0 0 0 0.0 380.0 3.61 3.0\n", "1 0 1 0.0 380.0 3.61 3.0\n", "2 1 0 1.0 660.0 3.67 3.0\n", "3 1 1 1.0 660.0 3.67 3.0\n", "4 2 0 1.0 800.0 4.00 1.0\n", ".. ... ... ... ... ... ...\n", "795 397 1 0.0 460.0 2.63 2.0\n", "796 398 0 0.0 700.0 3.65 2.0\n", "797 398 1 0.0 700.0 3.65 2.0\n", "798 399 0 0.0 600.0 3.89 3.0\n", "799 399 1 0.0 600.0 3.89 3.0\n", "\n", "[800 rows x 6 columns]" ] }, "metadata": { "tags": [] }, "execution_count": 6 } ] }, { "cell_type": "markdown", "metadata": { "id": "to9eEKhfFog1" }, "source": [ "Before fitting the model, let's create dummy representations of the `rank` variable to include them in the model." ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 424 }, "id": "lunx66smGy5d", "outputId": "f5358725-260d-465f-df7b-dca1cfd5de3d" }, "source": [ "df['rank'] = df['rank'].astype(int) # Convert to int first for better column naming\n", "df = df.join(pd.get_dummies(df['rank'], prefix='rank'))\n", "df" ], "execution_count": 7, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idaltadmitgregparankrank_1rank_2rank_3rank_4
0000.0380.03.6130010
1010.0380.03.6130010
2101.0660.03.6730010
3111.0660.03.6730010
4201.0800.04.0011000
.................................
79539710.0460.02.6320100
79639800.0700.03.6520100
79739810.0700.03.6520100
79839900.0600.03.8930010
79939910.0600.03.8930010
\n", "

800 rows × 10 columns

\n", "
" ], "text/plain": [ " id alt admit gre gpa rank rank_1 rank_2 rank_3 rank_4\n", "0 0 0 0.0 380.0 3.61 3 0 0 1 0\n", "1 0 1 0.0 380.0 3.61 3 0 0 1 0\n", "2 1 0 1.0 660.0 3.67 3 0 0 1 0\n", "3 1 1 1.0 660.0 3.67 3 0 0 1 0\n", "4 2 0 1.0 800.0 4.00 1 1 0 0 0\n", ".. ... ... ... ... ... ... ... ... ... ...\n", "795 397 1 0.0 460.0 2.63 2 0 1 0 0\n", "796 398 0 0.0 700.0 3.65 2 0 1 0 0\n", "797 398 1 0.0 700.0 3.65 2 0 1 0 0\n", "798 399 0 0.0 600.0 3.89 3 0 0 1 0\n", "799 399 1 0.0 600.0 3.89 3 0 0 1 0\n", "\n", "[800 rows x 10 columns]" ] }, "metadata": { "tags": [] }, "execution_count": 7 } ] }, { "cell_type": "markdown", "metadata": { "id": "UOYVPLTc20up" }, "source": [ "Now we can use these data in `xlogit`, as shown below. Note that the base category for `rank`, called `rank_1`, was not included in the model." ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "QqKxaMwgz7bq", "outputId": "25f39957-e9f9-47b6-9ea0-2d37cb619e2f" }, "source": [ "from xlogit import MultinomialLogit\n", "\n", "model = MultinomialLogit()\n", "varnames = ['gpa', 'gre', 'rank_2', 'rank_3', 'rank_4']\n", "model.fit(X=df[varnames],\n", " y=df['admit'],\n", " varnames=varnames,\n", " isvars=varnames,\n", " ids=df['id'],\n", " alts=df['alt'],\n", " fit_intercept=True)\n", "model.summary()" ], "execution_count": 8, "outputs": [ { "output_type": "stream", "text": [ "Estimation time= 0.0 seconds\n", "---------------------------------------------------------------------------\n", "Coefficient Estimate Std.Err. z-val P>|z|\n", "---------------------------------------------------------------------------\n", "_intercept.1 -3.9901156 1.0668058 -3.7402454 0.00081 ***\n", "gpa.1 0.8040565 0.2998838 2.6812267 0.0224 * \n", "gre.1 0.0022645 0.0009793 2.3124578 0.0556 . \n", "rank_2.1 -0.6754427 0.3038699 -2.2228022 0.068 . \n", "rank_3.1 -1.3402258 0.3329743 -4.0250129 0.000278 ***\n", "rank_4.1 -1.5514728 0.4055016 -3.8260580 0.000591 ***\n", "---------------------------------------------------------------------------\n", "Significance: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1\n", "\n", "Log-Likelihood= -229.259\n", "AIC= 470.517\n", "BIC= 494.466\n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "id": "oo903wY5JLbX" }, "source": [ "Note that the estimation results are identical to those displayed in the [original example in UCLA IDRE's website](https://stats.idre.ucla.edu/stata/dae/logistic-regression/).\n", "The `.1` suffix for the coefficient names represents the alternative that they are associated with. Given that in this case it is a binary logit, the coefficients are interpreted as being relative to the base alternative `0`." ] } ] }