{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"
\n",
"
\n",
"
EDA: Informo dataset π¦ \n",
"
INESDATA-MOV \n",
"
\n",
"\n",
"\n",
"# AnΓ‘lisis EDA\n",
"En este cuaderno se realiza el anΓ‘lisis de datos exploratorio (EDA) del dataset de [Informo](https://informo.madrid.es/#/realtime?panel=live). Una vez realizado el anΓ‘lisis de calidad se estudiarΓ‘ para el dataset resultante:\n",
"\n",
"* Valores nulos y unicidad de las variables\n",
"* Correlaciones entre las variables\n",
"\n",
"Con ello se pretende hacer un filtrado de las variables que no dispongan de informaciΓ³n relevante para el modelo o variables con la misma informaciΓ³n. Por otro lado se harΓ‘ un estudio de los valores nulos para, en caso de que sea pertinente, reconstruir estos datos. \n"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import statistics\n",
"import random\n",
"import polars as pl\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"import polars.selectors as cs\n",
"import matplotlib.pyplot as plt\n",
"from datetime import datetime, timedelta\n",
"\n",
"import warnings\n",
"\n",
"warnings.filterwarnings(\"ignore\")"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {},
"outputs": [],
"source": [
"ROOT_PATH = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(os.getcwd()))))\n",
"DATA_PATH = os.path.join(ROOT_PATH, \"data\", \"processed\")\n",
"INFORMO_DATA_PATH = os.path.join(DATA_PATH, \"informo\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Dataset"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {},
"outputs": [],
"source": [
"sample_data = pl.scan_csv(os.path.join(INFORMO_DATA_PATH, \"2024\", \"03\",\"13\", f\"informo_20240313.csv\"),ignore_errors=True)"
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
shape: (853_114, 15) idelem descripcion accesoAsociado intensidad ocupacion carga nivelServicio intensidadSat error subarea st_x st_y velocidad datetime date i64 str i64 i64 i64 i64 i64 i64 str i64 str str i64 str str 6711 null null 3840 30 105 1 null "N" null "442306,1965845β¦ "4481615,716877β¦ 37 "2024-03-13 07:β¦ "2024-03-13" 10112 "Arturo Soria -β¦ 4604002 740 4 29 1 2438 "N" 3203 "443972,0182132β¦ "4478986,477391β¦ null "2024-03-13 07:β¦ "2024-03-13" 6038 "Torrelaguna -β¦ 4627002 380 2 28 1 1390 "N" 3246 "443981,9555378β¦ "4478451,452544β¦ null "2024-03-13 07:β¦ "2024-03-13" 6039 "Torrelaguna -β¦ 4628002 840 6 24 0 3000 "N" 3215 "443984,1391077β¦ "4478277,302264β¦ null "2024-03-13 07:β¦ "2024-03-13" 6040 "Torrelaguna -β¦ 4628001 520 5 31 1 2000 "N" 3215 "444079,3042011β¦ "4478026,603977β¦ null "2024-03-13 07:β¦ "2024-03-13" … … … … … … … … … … … … … … … 10031 "NarcΓs Monturiβ¦ 4304002 20 0 2 0 775 "N" 314 "440656,7563117β¦ "4481793,239724β¦ null "2024-03-13 22:β¦ "2024-03-13" 10463 "Av. IlustraciΓ³β¦ null 700 1 14 0 4420 "N" 314 "440789,2294428β¦ "4481734,191243β¦ null "2024-03-13 22:β¦ "2024-03-13" 3421 "Bravo Murillo β¦ 6201004 480 1 16 0 2900 "N" 304 "441453,9700354β¦ "4479675,623063β¦ null "2024-03-13 22:β¦ "2024-03-13" 3423 "Lateral PΒΊ Casβ¦ 6003012 280 2 8 0 3200 "N" 301 "441493,7615599β¦ "4479352,765088β¦ null "2024-03-13 22:β¦ "2024-03-13" 10899 "Av. EntrevΓas β¦ 6805002 220 1 17 0 1800 "N" 3008 "443058,8945281β¦ "4470747,452195β¦ null "2024-03-13 22:β¦ "2024-03-13"
"
],
"text/plain": [
"shape: (853_114, 15)\n",
"ββββββββββ¬βββββββββββββ¬βββββββββββββ¬ββββββββββββ¬ββββ¬ββββββββββββ¬ββββββββββββ¬ββββββββββββ¬ββββββββββββ\n",
"β idelem β descripcio β accesoAsoc β intensida β β¦ β st_y β velocidad β datetime β date β\n",
"β --- β n β iado β d β β --- β --- β --- β --- β\n",
"β i64 β --- β --- β --- β β str β i64 β str β str β\n",
"β β str β i64 β i64 β β β β β β\n",
"ββββββββββͺβββββββββββββͺβββββββββββββͺββββββββββββͺββββͺββββββββββββͺββββββββββββͺββββββββββββͺββββββββββββ‘\n",
"β 6711 β null β null β 3840 β β¦ β 4481615,7 β 37 β 2024-03-1 β 2024-03-1 β\n",
"β β β β β β 1687789 β β 3 β 3 β\n",
"β β β β β β β β 07:55:08 β β\n",
"β 10112 β Arturo β 4604002 β 740 β β¦ β 4478986,4 β null β 2024-03-1 β 2024-03-1 β\n",
"β β Soria - β β β β 7739102 β β 3 β 3 β\n",
"β β Pablo β β β β β β 07:55:08 β β\n",
"β β Vidal - β β β β β β β β\n",
"β β Vicβ¦ β β β β β β β β\n",
"β 6038 β Torrelagun β 4627002 β 380 β β¦ β 4478451,4 β null β 2024-03-1 β 2024-03-1 β\n",
"β β a - β β β β 5254494 β β 3 β 3 β\n",
"β β Arturo Bal β β β β β β 07:55:08 β β\n",
"β β dasano-β¦ β β β β β β β β\n",
"β 6039 β Torrelagun β 4628002 β 840 β β¦ β 4478277,3 β null β 2024-03-1 β 2024-03-1 β\n",
"β β a - Av. β β β β 0226478 β β 3 β 3 β\n",
"β β RamΓ³n y β β β β β β 07:55:08 β β\n",
"β β Cajalβ¦ β β β β β β β β\n",
"β 6040 β Torrelagun β 4628001 β 520 β β¦ β 4478026,6 β null β 2024-03-1 β 2024-03-1 β\n",
"β β a - Sorza β β β β 0397703 β β 3 β 3 β\n",
"β β no-Acceso β β β β β β 07:55:08 β β\n",
"β β M3β¦ β β β β β β β β\n",
"β β¦ β β¦ β β¦ β β¦ β β¦ β β¦ β β¦ β β¦ β β¦ β\n",
"β 10031 β NarcΓs β 4304002 β 20 β β¦ β 4481793,2 β null β 2024-03-1 β 2024-03-1 β\n",
"β β Monturiol β β β β 3972478 β β 3 β 3 β\n",
"β β N-S - β β β β β β 22:50:11 β β\n",
"β β Sangenjo-β¦ β β β β β β β β\n",
"β 10463 β Av. Ilustr β null β 700 β β¦ β 4481734,1 β null β 2024-03-1 β 2024-03-1 β\n",
"β β aciΓ³n O-E β β β β 912437 β β 3 β 3 β\n",
"β β (Azobispo β β β β β β 22:50:11 β β\n",
"β β Moβ¦ β β β β β β β β\n",
"β 3421 β Bravo β 6201004 β 480 β β¦ β 4479675,6 β null β 2024-03-1 β 2024-03-1 β\n",
"β β Murillo β β β β 2306307 β β 3 β 3 β\n",
"β β E-O - Pl.C β β β β β β 22:50:11 β β\n",
"β β astilla-β¦ β β β β β β β β\n",
"β 3423 β Lateral PΒΊ β 6003012 β 280 β β¦ β 4479352,7 β null β 2024-03-1 β 2024-03-1 β\n",
"β β Castellana β β β β 6508833 β β 3 β 3 β\n",
"β β N-S - β β β β β β 22:50:11 β β\n",
"β β Pl.Cβ¦ β β β β β β β β\n",
"β 10899 β Av. β 6805002 β 220 β β¦ β 4470747,4 β null β 2024-03-1 β 2024-03-1 β\n",
"β β EntrevΓas β β β β 5219509 β β 3 β 3 β\n",
"β β - Mejorana β β β β β β 22:50:11 β β\n",
"β β -Sierra β¦ β β β β β β β β\n",
"ββββββββββ΄βββββββββββββ΄βββββββββββββ΄ββββββββββββ΄ββββ΄ββββββββββββ΄ββββββββββββ΄ββββββββββββ΄ββββββββββββ"
]
},
"execution_count": 94,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample_data.collect()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Variables numΓ©ricas"
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
shape: (5, 9) idelem accesoAsociado intensidad ocupacion carga nivelServicio intensidadSat subarea velocidad i64 i64 i64 i64 i64 i64 i64 i64 i64 6711 null 3840 30 105 1 null null 37 10112 4604002 740 4 29 1 2438 3203 null 6038 4627002 380 2 28 1 1390 3246 null 6039 4628002 840 6 24 0 3000 3215 null 6040 4628001 520 5 31 1 2000 3215 null
"
],
"text/plain": [
"shape: (5, 9)\n",
"ββββββββββ¬βββββββββββββ¬βββββββββββββ¬ββββββββββββ¬ββββ¬βββββββββββββ¬βββββββββββββ¬ββββββββββ¬ββββββββββββ\n",
"β idelem β accesoAsoc β intensidad β ocupacion β β¦ β nivelServi β intensidad β subarea β velocidad β\n",
"β --- β iado β --- β --- β β cio β Sat β --- β --- β\n",
"β i64 β --- β i64 β i64 β β --- β --- β i64 β i64 β\n",
"β β i64 β β β β i64 β i64 β β β\n",
"ββββββββββͺβββββββββββββͺβββββββββββββͺββββββββββββͺββββͺβββββββββββββͺβββββββββββββͺββββββββββͺββββββββββββ‘\n",
"β 6711 β null β 3840 β 30 β β¦ β 1 β null β null β 37 β\n",
"β 10112 β 4604002 β 740 β 4 β β¦ β 1 β 2438 β 3203 β null β\n",
"β 6038 β 4627002 β 380 β 2 β β¦ β 1 β 1390 β 3246 β null β\n",
"β 6039 β 4628002 β 840 β 6 β β¦ β 0 β 3000 β 3215 β null β\n",
"β 6040 β 4628001 β 520 β 5 β β¦ β 1 β 2000 β 3215 β null β\n",
"ββββββββββ΄βββββββββββββ΄βββββββββββββ΄ββββββββββββ΄ββββ΄βββββββββββββ΄βββββββββββββ΄ββββββββββ΄ββββββββββββ"
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample_data.select(cs.numeric()).head().collect()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Variables categΓ³ricas"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
shape: (5, 6) descripcion error st_x st_y datetime date str str str str str str null "N" "442306,1965845β¦ "4481615,716877β¦ "2024-03-13 07:β¦ "2024-03-13" "Arturo Soria -β¦ "N" "443972,0182132β¦ "4478986,477391β¦ "2024-03-13 07:β¦ "2024-03-13" "Torrelaguna -β¦ "N" "443981,9555378β¦ "4478451,452544β¦ "2024-03-13 07:β¦ "2024-03-13" "Torrelaguna -β¦ "N" "443984,1391077β¦ "4478277,302264β¦ "2024-03-13 07:β¦ "2024-03-13" "Torrelaguna -β¦ "N" "444079,3042011β¦ "4478026,603977β¦ "2024-03-13 07:β¦ "2024-03-13"
"
],
"text/plain": [
"shape: (5, 6)\n",
"ββββββββββββββββββ¬ββββββββ¬βββββββββββββββββββ¬βββββββββββββββββββ¬βββββββββββββββββββββββ¬βββββββββββββ\n",
"β descripcion β error β st_x β st_y β datetime β date β\n",
"β --- β --- β --- β --- β --- β --- β\n",
"β str β str β str β str β str β str β\n",
"ββββββββββββββββββͺββββββββͺβββββββββββββββββββͺβββββββββββββββββββͺβββββββββββββββββββββββͺβββββββββββββ‘\n",
"β null β N β 442306,196584557 β 4481615,71687789 β 2024-03-13 07:55:08 β 2024-03-13 β\n",
"β Arturo Soria - β N β 443972,01821329 β 4478986,47739102 β 2024-03-13 07:55:08 β 2024-03-13 β\n",
"β Pablo Vidal - β β β β β β\n",
"β Vicβ¦ β β β β β β\n",
"β Torrelaguna - β N β 443981,955537857 β 4478451,45254494 β 2024-03-13 07:55:08 β 2024-03-13 β\n",
"β Arturo β β β β β β\n",
"β Baldasano-β¦ β β β β β β\n",
"β Torrelaguna - β N β 443984,139107713 β 4478277,30226478 β 2024-03-13 07:55:08 β 2024-03-13 β\n",
"β Av. RamΓ³n y β β β β β β\n",
"β Cajalβ¦ β β β β β β\n",
"β Torrelaguna - β N β 444079,304201131 β 4478026,60397703 β 2024-03-13 07:55:08 β 2024-03-13 β\n",
"β Sorzano-Acceso β β β β β β\n",
"β M3β¦ β β β β β β\n",
"ββββββββββββββββββ΄ββββββββ΄βββββββββββββββββββ΄βββββββββββββββββββ΄βββββββββββββββββββββββ΄βββββββββββββ"
]
},
"execution_count": 96,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample_data.select(cs.string()).head().collect()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Preprocesamiento previo"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
shape: (5, 13) idelem descripcion accesoAsociado intensidad ocupacion carga nivelServicio intensidadSat subarea st_x st_y datetime date i64 str i64 i64 i64 i64 i64 i64 i64 str str str str 6711 null null 3840 30 105 1 null null "442306,1965845β¦ "4481615,716877β¦ "2024-03-13 07:β¦ "2024-03-13" 10112 "Arturo Soria -β¦ 4604002 740 4 29 1 2438 3203 "443972,0182132β¦ "4478986,477391β¦ "2024-03-13 07:β¦ "2024-03-13" 6038 "Torrelaguna -β¦ 4627002 380 2 28 1 1390 3246 "443981,9555378β¦ "4478451,452544β¦ "2024-03-13 07:β¦ "2024-03-13" 6039 "Torrelaguna -β¦ 4628002 840 6 24 0 3000 3215 "443984,1391077β¦ "4478277,302264β¦ "2024-03-13 07:β¦ "2024-03-13" 6040 "Torrelaguna -β¦ 4628001 520 5 31 1 2000 3215 "444079,3042011β¦ "4478026,603977β¦ "2024-03-13 07:β¦ "2024-03-13"
"
],
"text/plain": [
"shape: (5, 13)\n",
"ββββββββββ¬βββββββββββββ¬βββββββββββββ¬ββββββββββββ¬ββββ¬ββββββββββββ¬ββββββββββββ¬ββββββββββββ¬ββββββββββββ\n",
"β idelem β descripcio β accesoAsoc β intensida β β¦ β st_x β st_y β datetime β date β\n",
"β --- β n β iado β d β β --- β --- β --- β --- β\n",
"β i64 β --- β --- β --- β β str β str β str β str β\n",
"β β str β i64 β i64 β β β β β β\n",
"ββββββββββͺβββββββββββββͺβββββββββββββͺββββββββββββͺββββͺββββββββββββͺββββββββββββͺββββββββββββͺββββββββββββ‘\n",
"β 6711 β null β null β 3840 β β¦ β 442306,19 β 4481615,7 β 2024-03-1 β 2024-03-1 β\n",
"β β β β β β 6584557 β 1687789 β 3 β 3 β\n",
"β β β β β β β β 07:55:08 β β\n",
"β 10112 β Arturo β 4604002 β 740 β β¦ β 443972,01 β 4478986,4 β 2024-03-1 β 2024-03-1 β\n",
"β β Soria - β β β β 821329 β 7739102 β 3 β 3 β\n",
"β β Pablo β β β β β β 07:55:08 β β\n",
"β β Vidal - β β β β β β β β\n",
"β β Vicβ¦ β β β β β β β β\n",
"β 6038 β Torrelagun β 4627002 β 380 β β¦ β 443981,95 β 4478451,4 β 2024-03-1 β 2024-03-1 β\n",
"β β a - β β β β 5537857 β 5254494 β 3 β 3 β\n",
"β β Arturo Bal β β β β β β 07:55:08 β β\n",
"β β dasano-β¦ β β β β β β β β\n",
"β 6039 β Torrelagun β 4628002 β 840 β β¦ β 443984,13 β 4478277,3 β 2024-03-1 β 2024-03-1 β\n",
"β β a - Av. β β β β 9107713 β 0226478 β 3 β 3 β\n",
"β β RamΓ³n y β β β β β β 07:55:08 β β\n",
"β β Cajalβ¦ β β β β β β β β\n",
"β 6040 β Torrelagun β 4628001 β 520 β β¦ β 444079,30 β 4478026,6 β 2024-03-1 β 2024-03-1 β\n",
"β β a - Sorza β β β β 4201131 β 0397703 β 3 β 3 β\n",
"β β no-Acceso β β β β β β 07:55:08 β β\n",
"β β M3β¦ β β β β β β β β\n",
"ββββββββββ΄βββββββββββββ΄βββββββββββββ΄ββββββββββββ΄ββββ΄ββββββββββββ΄ββββββββββββ΄ββββββββββββ΄ββββββββββββ"
]
},
"execution_count": 97,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Este es el preprocesamiento obtenido del QA\n",
"sample_data = sample_data.filter(pl.col('idelem').is_not_null(),pl.col('error')=='N').drop('velocidad','error')\n",
"sample_data.head().collect()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### ConversiΓ³n de variables"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {},
"outputs": [],
"source": [
"sample_data = sample_data.with_columns(\n",
" pl.col('datetime').map_elements(lambda x: datetime.strptime(x, \"%Y-%m-%d %H:%M:%S\")),\n",
" pl.col('date').cast(pl.Date)\n",
")\n"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
shape: (5, 13) idelem descripcion accesoAsociado intensidad ocupacion carga nivelServicio intensidadSat subarea st_x st_y datetime date i64 str i64 i64 i64 i64 i64 i64 i64 str str datetime[ΞΌs] date 6711 null null 3840 30 105 1 null null "442306,1965845β¦ "4481615,716877β¦ 2024-03-13 07:55:08 2024-03-13 10112 "Arturo Soria -β¦ 4604002 740 4 29 1 2438 3203 "443972,0182132β¦ "4478986,477391β¦ 2024-03-13 07:55:08 2024-03-13 6038 "Torrelaguna -β¦ 4627002 380 2 28 1 1390 3246 "443981,9555378β¦ "4478451,452544β¦ 2024-03-13 07:55:08 2024-03-13 6039 "Torrelaguna -β¦ 4628002 840 6 24 0 3000 3215 "443984,1391077β¦ "4478277,302264β¦ 2024-03-13 07:55:08 2024-03-13 6040 "Torrelaguna -β¦ 4628001 520 5 31 1 2000 3215 "444079,3042011β¦ "4478026,603977β¦ 2024-03-13 07:55:08 2024-03-13
"
],
"text/plain": [
"shape: (5, 13)\n",
"ββββββββββ¬βββββββββββββ¬βββββββββββββ¬ββββββββββββ¬ββββ¬ββββββββββββ¬ββββββββββββ¬ββββββββββββ¬ββββββββββββ\n",
"β idelem β descripcio β accesoAsoc β intensida β β¦ β st_x β st_y β datetime β date β\n",
"β --- β n β iado β d β β --- β --- β --- β --- β\n",
"β i64 β --- β --- β --- β β str β str β datetime[ β date β\n",
"β β str β i64 β i64 β β β β ΞΌs] β β\n",
"ββββββββββͺβββββββββββββͺβββββββββββββͺββββββββββββͺββββͺββββββββββββͺββββββββββββͺββββββββββββͺββββββββββββ‘\n",
"β 6711 β null β null β 3840 β β¦ β 442306,19 β 4481615,7 β 2024-03-1 β 2024-03-1 β\n",
"β β β β β β 6584557 β 1687789 β 3 β 3 β\n",
"β β β β β β β β 07:55:08 β β\n",
"β 10112 β Arturo β 4604002 β 740 β β¦ β 443972,01 β 4478986,4 β 2024-03-1 β 2024-03-1 β\n",
"β β Soria - β β β β 821329 β 7739102 β 3 β 3 β\n",
"β β Pablo β β β β β β 07:55:08 β β\n",
"β β Vidal - β β β β β β β β\n",
"β β Vicβ¦ β β β β β β β β\n",
"β 6038 β Torrelagun β 4627002 β 380 β β¦ β 443981,95 β 4478451,4 β 2024-03-1 β 2024-03-1 β\n",
"β β a - β β β β 5537857 β 5254494 β 3 β 3 β\n",
"β β Arturo Bal β β β β β β 07:55:08 β β\n",
"β β dasano-β¦ β β β β β β β β\n",
"β 6039 β Torrelagun β 4628002 β 840 β β¦ β 443984,13 β 4478277,3 β 2024-03-1 β 2024-03-1 β\n",
"β β a - Av. β β β β 9107713 β 0226478 β 3 β 3 β\n",
"β β RamΓ³n y β β β β β β 07:55:08 β β\n",
"β β Cajalβ¦ β β β β β β β β\n",
"β 6040 β Torrelagun β 4628001 β 520 β β¦ β 444079,30 β 4478026,6 β 2024-03-1 β 2024-03-1 β\n",
"β β a - Sorza β β β β 4201131 β 0397703 β 3 β 3 β\n",
"β β no-Acceso β β β β β β 07:55:08 β β\n",
"β β M3β¦ β β β β β β β β\n",
"ββββββββββ΄βββββββββββββ΄βββββββββββββ΄ββββββββββββ΄ββββ΄ββββββββββββ΄ββββββββββββ΄ββββββββββββ΄ββββββββββββ"
]
},
"execution_count": 99,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample_data.head().collect()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Creamos la PK "
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
shape: (5, 14) idelem descripcion accesoAsociado intensidad ocupacion carga nivelServicio intensidadSat subarea st_x st_y datetime date PK i64 str i64 i64 i64 i64 i64 i64 i64 str str datetime[ΞΌs] date str 6711 null null 3840 30 105 1 null null "442306,1965845β¦ "4481615,716877β¦ 2024-03-13 07:55:08 2024-03-13 null 10112 "Arturo Soria -β¦ 4604002 740 4 29 1 2438 3203 "443972,0182132β¦ "4478986,477391β¦ 2024-03-13 07:55:08 2024-03-13 "2024-03-13 07:β¦ 6038 "Torrelaguna -β¦ 4627002 380 2 28 1 1390 3246 "443981,9555378β¦ "4478451,452544β¦ 2024-03-13 07:55:08 2024-03-13 "2024-03-13 07:β¦ 6039 "Torrelaguna -β¦ 4628002 840 6 24 0 3000 3215 "443984,1391077β¦ "4478277,302264β¦ 2024-03-13 07:55:08 2024-03-13 "2024-03-13 07:β¦ 6040 "Torrelaguna -β¦ 4628001 520 5 31 1 2000 3215 "444079,3042011β¦ "4478026,603977β¦ 2024-03-13 07:55:08 2024-03-13 "2024-03-13 07:β¦
"
],
"text/plain": [
"shape: (5, 14)\n",
"ββββββββββ¬βββββββββββββ¬βββββββββββββ¬ββββββββββββ¬ββββ¬ββββββββββββ¬ββββββββββββ¬ββββββββββββ¬ββββββββββββ\n",
"β idelem β descripcio β accesoAsoc β intensida β β¦ β st_y β datetime β date β PK β\n",
"β --- β n β iado β d β β --- β --- β --- β --- β\n",
"β i64 β --- β --- β --- β β str β datetime[ β date β str β\n",
"β β str β i64 β i64 β β β ΞΌs] β β β\n",
"ββββββββββͺβββββββββββββͺβββββββββββββͺββββββββββββͺββββͺββββββββββββͺββββββββββββͺββββββββββββͺββββββββββββ‘\n",
"β 6711 β null β null β 3840 β β¦ β 4481615,7 β 2024-03-1 β 2024-03-1 β null β\n",
"β β β β β β 1687789 β 3 β 3 β β\n",
"β β β β β β β 07:55:08 β β β\n",
"β 10112 β Arturo β 4604002 β 740 β β¦ β 4478986,4 β 2024-03-1 β 2024-03-1 β 2024-03-1 β\n",
"β β Soria - β β β β 7739102 β 3 β 3 β 3 07:55:0 β\n",
"β β Pablo β β β β β 07:55:08 β β 8.000000_ β\n",
"β β Vidal - β β β β β β β I1011β¦ β\n",
"β β Vicβ¦ β β β β β β β β\n",
"β 6038 β Torrelagun β 4627002 β 380 β β¦ β 4478451,4 β 2024-03-1 β 2024-03-1 β 2024-03-1 β\n",
"β β a - β β β β 5254494 β 3 β 3 β 3 07:55:0 β\n",
"β β Arturo Bal β β β β β 07:55:08 β β 8.000000_ β\n",
"β β dasano-β¦ β β β β β β β I6038β¦ β\n",
"β 6039 β Torrelagun β 4628002 β 840 β β¦ β 4478277,3 β 2024-03-1 β 2024-03-1 β 2024-03-1 β\n",
"β β a - Av. β β β β 0226478 β 3 β 3 β 3 07:55:0 β\n",
"β β RamΓ³n y β β β β β 07:55:08 β β 8.000000_ β\n",
"β β Cajalβ¦ β β β β β β β I6039β¦ β\n",
"β 6040 β Torrelagun β 4628001 β 520 β β¦ β 4478026,6 β 2024-03-1 β 2024-03-1 β 2024-03-1 β\n",
"β β a - Sorza β β β β 0397703 β 3 β 3 β 3 07:55:0 β\n",
"β β no-Acceso β β β β β 07:55:08 β β 8.000000_ β\n",
"β β M3β¦ β β β β β β β I6040β¦ β\n",
"ββββββββββ΄βββββββββββββ΄βββββββββββββ΄ββββββββββββ΄ββββ΄ββββββββββββ΄ββββββββββββ΄ββββββββββββ΄ββββββββββββ"
]
},
"execution_count": 100,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample_data = sample_data.with_columns((pl.col('datetime').cast(pl.String)+\"_I\"+pl.col('idelem').cast(pl.String)+\"_S\"+pl.col('subarea').cast(pl.String)).alias('PK'))\n",
"sample_data.head().collect()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Matriz de confusiΓ³n"
]
},
{
"cell_type": "code",
"execution_count": 101,
"metadata": {},
"outputs": [],
"source": [
"numeric_var = ['accesoAsociado', 'intensidad', 'ocupacion', 'carga', 'intensidadSat','nivelServicio']"
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {},
"outputs": [],
"source": [
"sample_data_df = sample_data.collect()"
]
},
{
"cell_type": "code",
"execution_count": 103,
"metadata": {},
"outputs": [],
"source": [
"matrix = [[0] * len(numeric_var) for _ in range(len(numeric_var))]\n",
"for i in range(0,len(numeric_var)):\n",
" for j in range(0,len(numeric_var)):\n",
" matrix[i][j] = sample_data_df.select(pl.corr(numeric_var[i],numeric_var[j])).item()"
]
},
{
"cell_type": "code",
"execution_count": 104,
"metadata": {},
"outputs": [],
"source": [
"matrix_corr = pd.DataFrame(matrix, columns=numeric_var,index=numeric_var).apply(lambda col: col.round(4))"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" accesoAsociado \n",
" intensidad \n",
" ocupacion \n",
" carga \n",
" intensidadSat \n",
" nivelServicio \n",
" \n",
" \n",
" \n",
" \n",
" accesoAsociado \n",
" 1.0000 \n",
" 0.0806 \n",
" -0.0571 \n",
" 0.0834 \n",
" -0.1260 \n",
" 0.0469 \n",
" \n",
" \n",
" intensidad \n",
" 0.0806 \n",
" 1.0000 \n",
" 0.1169 \n",
" 0.6407 \n",
" 0.5804 \n",
" 0.2241 \n",
" \n",
" \n",
" ocupacion \n",
" -0.0571 \n",
" 0.1169 \n",
" 1.0000 \n",
" 0.5722 \n",
" -0.0734 \n",
" 0.6011 \n",
" \n",
" \n",
" carga \n",
" 0.0834 \n",
" 0.6407 \n",
" 0.5722 \n",
" 1.0000 \n",
" -0.0684 \n",
" 0.7278 \n",
" \n",
" \n",
" intensidadSat \n",
" -0.1260 \n",
" 0.5804 \n",
" -0.0734 \n",
" -0.0684 \n",
" 1.0000 \n",
" -0.0730 \n",
" \n",
" \n",
" nivelServicio \n",
" 0.0469 \n",
" 0.2241 \n",
" 0.6011 \n",
" 0.7278 \n",
" -0.0730 \n",
" 1.0000 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" accesoAsociado intensidad ocupacion carga intensidadSat \\\n",
"accesoAsociado 1.0000 0.0806 -0.0571 0.0834 -0.1260 \n",
"intensidad 0.0806 1.0000 0.1169 0.6407 0.5804 \n",
"ocupacion -0.0571 0.1169 1.0000 0.5722 -0.0734 \n",
"carga 0.0834 0.6407 0.5722 1.0000 -0.0684 \n",
"intensidadSat -0.1260 0.5804 -0.0734 -0.0684 1.0000 \n",
"nivelServicio 0.0469 0.2241 0.6011 0.7278 -0.0730 \n",
"\n",
" nivelServicio \n",
"accesoAsociado 0.0469 \n",
"intensidad 0.2241 \n",
"ocupacion 0.6011 \n",
"carga 0.7278 \n",
"intensidadSat -0.0730 \n",
"nivelServicio 1.0000 "
]
},
"execution_count": 105,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"matrix_corr"
]
},
{
"cell_type": "code",
"execution_count": 106,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 106,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.heatmap(matrix_corr, cmap='coolwarm',vmin=-1, vmax=1,annot=True)"
]
},
{
"cell_type": "code",
"execution_count": 107,
"metadata": {},
"outputs": [],
"source": [
"matrix_corr.to_csv('/home/mlia/proyectos/data-generation/docs/notebooks/aux/matrix_corr_informo.csv', index=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"De esta matriz de confusiΓ³n obtenemos que las variables mΓ‘s correladas entre sΓ son:\n",
"- `Intensidad` y `carga`\n",
"- `Intensidad` e `IntensidadSat`\n",
"- `Intensidad` y `NivelServicio`\n",
"- `OcupaciΓ³n` y `carga`\n",
"- `Carga` y `NivelServicio`\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Estudio por variables"
]
},
{
"cell_type": "code",
"execution_count": 108,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
shape: (9, 15) statistic idelem descripcion accesoAsociado intensidad ocupacion carga nivelServicio intensidadSat subarea st_x st_y datetime date PK str f64 str f64 f64 f64 f64 f64 f64 f64 str str str str str "count" 804296.0 "754248" 683771.0 804296.0 804296.0 804296.0 803942.0 754248.0 754248.0 "804296" "804296" "804296" "804296" "754248" "null_count" 0.0 "50048" 120525.0 0.0 0.0 0.0 354.0 50048.0 50048.0 "0" "0" "0" "0" "50048" "mean" 6723.767336 null 2.5684e6 539.280347 8.622539 27.497086 0.522764 2014.450624 20947.215391 null null null "2024-03-13" null "std" 2569.768409 null 2.8468e6 727.708937 14.600438 21.320518 0.721251 1172.177108 42749.711245 null null null null null "min" 3395.0 "(AFO)R. YBARRAβ¦ 0.0 -1.0 -1.0 -1.0 -1.0 50.0 0.0 "429060,7904544β¦ "4464901,554260β¦ null "2024-03-13" "2024-03-13 07:β¦ "25%" 4679.0 null 312203.0 127.0 1.0 11.0 0.0 1200.0 1712.0 null null null "2024-03-13" null "50%" 5917.0 null 843101.0 300.0 4.0 23.0 0.0 1570.0 3101.0 null null null "2024-03-13" null "75%" 9999.0 null 5.503003e6 660.0 8.0 39.0 1.0 3000.0 3702.0 null null null "2024-03-13" null "max" 11300.0 "Γngel Luis Herβ¦ 9.905004e6 17900.0 100.0 346.0 3.0 9000.0 130043.0 "450772,2789719β¦ "4485212,993851β¦ null "2024-03-13" "2024-03-13 22:β¦
"
],
"text/plain": [
"shape: (9, 15)\n",
"βββββββββββββ¬ββββββββββββ¬ββββββββββββ¬ββββββββββββ¬ββββ¬ββββββββββββ¬βββββββββββ¬ββββββββββββ¬ββββββββββββ\n",
"β statistic β idelem β descripci β accesoAso β β¦ β st_y β datetime β date β PK β\n",
"β --- β --- β on β ciado β β --- β --- β --- β --- β\n",
"β str β f64 β --- β --- β β str β str β str β str β\n",
"β β β str β f64 β β β β β β\n",
"βββββββββββββͺββββββββββββͺββββββββββββͺββββββββββββͺββββͺββββββββββββͺβββββββββββͺββββββββββββͺββββββββββββ‘\n",
"β count β 804296.0 β 754248 β 683771.0 β β¦ β 804296 β 804296 β 804296 β 754248 β\n",
"β null_coun β 0.0 β 50048 β 120525.0 β β¦ β 0 β 0 β 0 β 50048 β\n",
"β t β β β β β β β β β\n",
"β mean β 6723.7673 β null β 2.5684e6 β β¦ β null β null β 2024-03-1 β null β\n",
"β β 36 β β β β β β 3 β β\n",
"β std β 2569.7684 β null β 2.8468e6 β β¦ β null β null β null β null β\n",
"β β 09 β β β β β β β β\n",
"β min β 3395.0 β (AFO)R. β 0.0 β β¦ β 4464901,5 β null β 2024-03-1 β 2024-03-1 β\n",
"β β β YBARRA β β β 5426055 β β 3 β 3 07:55:0 β\n",
"β β β N-S(M. β β β β β β 8.000000_ β\n",
"β β β USERA-D. β β β β β β I1000β¦ β\n",
"β β β Bβ¦ β β β β β β β\n",
"β 25% β 4679.0 β null β 312203.0 β β¦ β null β null β 2024-03-1 β null β\n",
"β β β β β β β β 3 β β\n",
"β 50% β 5917.0 β null β 843101.0 β β¦ β null β null β 2024-03-1 β null β\n",
"β β β β β β β β 3 β β\n",
"β 75% β 9999.0 β null β 5.503003e β β¦ β null β null β 2024-03-1 β null β\n",
"β β β β 6 β β β β 3 β β\n",
"β max β 11300.0 β Γngel β 9.905004e β β¦ β 4485212,9 β null β 2024-03-1 β 2024-03-1 β\n",
"β β β Luis β 6 β β 9385152 β β 3 β 3 22:50:1 β\n",
"β β β HerrΓ‘n - β β β β β β 1.000000_ β\n",
"β β β Valdetorr β β β β β β I9999β¦ β\n",
"β β β es β¦ β β β β β β β\n",
"βββββββββββββ΄ββββββββββββ΄ββββββββββββ΄ββββββββββββ΄ββββ΄ββββββββββββ΄βββββββββββ΄ββββββββββββ΄ββββββββββββ"
]
},
"execution_count": 108,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample_data.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Variable `intensidad`**"
]
},
{
"cell_type": "code",
"execution_count": 109,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
shape: (5, 2) intensidad count i64 u32 17900 1 16420 1 12060 1 11000 1 9800 1
"
],
"text/plain": [
"shape: (5, 2)\n",
"ββββββββββββββ¬ββββββββ\n",
"β intensidad β count β\n",
"β --- β --- β\n",
"β i64 β u32 β\n",
"ββββββββββββββͺββββββββ‘\n",
"β 17900 β 1 β\n",
"β 16420 β 1 β\n",
"β 12060 β 1 β\n",
"β 11000 β 1 β\n",
"β 9800 β 1 β\n",
"ββββββββββββββ΄ββββββββ"
]
},
"execution_count": 109,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample_data.group_by(pl.col('intensidad')).count().sort('intensidad',descending=True).head().collect()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Identificadores con mayor intensidad"
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {},
"outputs": [
{
"data": {},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.holoviews_exec.v0+json": "",
"text/html": [
"\n",
""
],
"text/plain": [
":Bars [idelem] (intensidad)"
]
},
"execution_count": 110,
"metadata": {
"application/vnd.holoviews_exec.v0+json": {
"id": "p1872"
}
},
"output_type": "execute_result"
}
],
"source": [
"sample_data.group_by(pl.col('idelem')).max().sort('intensidad',descending=True).select(pl.col('idelem'),pl.col('intensidad')).head(10).collect().plot.bar(x='idelem', y='intensidad')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Zonas con mayor intensidad"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {},
"outputs": [
{
"data": {},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.holoviews_exec.v0+json": "",
"text/html": [
"\n",
""
],
"text/plain": [
":Bars [descripcion] (intensidad)"
]
},
"execution_count": 111,
"metadata": {
"application/vnd.holoviews_exec.v0+json": {
"id": "p1934"
}
},
"output_type": "execute_result"
}
],
"source": [
"sample_data.filter(pl.col('descripcion').is_not_null()).group_by(pl.col('descripcion')).max().sort('intensidad',descending=True).select(pl.col('descripcion'),pl.col('intensidad')).head(10).collect().plot.bar(x='descripcion', y='intensidad',rot=20)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Variable `ocupacion`**"
]
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
shape: (5, 2) ocupacion count i64 u32 100 699 99 103 98 285 97 228 96 144
"
],
"text/plain": [
"shape: (5, 2)\n",
"βββββββββββββ¬ββββββββ\n",
"β ocupacion β count β\n",
"β --- β --- β\n",
"β i64 β u32 β\n",
"βββββββββββββͺββββββββ‘\n",
"β 100 β 699 β\n",
"β 99 β 103 β\n",
"β 98 β 285 β\n",
"β 97 β 228 β\n",
"β 96 β 144 β\n",
"βββββββββββββ΄ββββββββ"
]
},
"execution_count": 112,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample_data.group_by(pl.col('ocupacion')).count().sort('ocupacion',descending=True).head().collect()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Zonas que se llenan el mayor nΓΊmero de veces"
]
},
{
"cell_type": "code",
"execution_count": 113,
"metadata": {},
"outputs": [
{
"data": {},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.holoviews_exec.v0+json": "",
"text/html": [
"\n",
""
],
"text/plain": [
":Bars [descripcion] (count)"
]
},
"execution_count": 113,
"metadata": {
"application/vnd.holoviews_exec.v0+json": {
"id": "p1996"
}
},
"output_type": "execute_result"
}
],
"source": [
"sample_data.filter(pl.col('descripcion').is_not_null()).group_by(pl.col('descripcion'),pl.col('ocupacion')).count().sort('count',descending=True).select(pl.col('descripcion'),pl.col('count')).head(10).collect().plot.bar(x='descripcion', y='count',rot=15,ylabel='NΓΊmero de veces que tiene ocupaciΓ³n total')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Variable `carga`**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Identificadores con mayor carga"
]
},
{
"cell_type": "code",
"execution_count": 114,
"metadata": {},
"outputs": [
{
"data": {},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.holoviews_exec.v0+json": "",
"text/html": [
"\n",
""
],
"text/plain": [
":Bars [idelem] (carga)"
]
},
"execution_count": 114,
"metadata": {
"application/vnd.holoviews_exec.v0+json": {
"id": "p2058"
}
},
"output_type": "execute_result"
}
],
"source": [
"sample_data.group_by(pl.col('idelem')).max().sort('carga',descending=True).select(pl.col('idelem'),pl.col('carga')).head(10).collect().plot.bar(x='idelem', y='carga')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Zonas con mayor carga"
]
},
{
"cell_type": "code",
"execution_count": 115,
"metadata": {},
"outputs": [
{
"data": {},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.holoviews_exec.v0+json": "",
"text/html": [
"\n",
""
],
"text/plain": [
":Bars [descripcion] (carga)"
]
},
"execution_count": 115,
"metadata": {
"application/vnd.holoviews_exec.v0+json": {
"id": "p2120"
}
},
"output_type": "execute_result"
}
],
"source": [
"sample_data.filter(pl.col('descripcion').is_not_null()).group_by(pl.col('descripcion')).max().sort('carga',descending=True).select(pl.col('descripcion'),pl.col('carga')).head(10).collect().plot.bar(x='descripcion', y='carga',rot=15)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Variable `nivelServicio`**"
]
},
{
"cell_type": "code",
"execution_count": 116,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
shape: (6, 2) nivelServicio count i64 u32 null 354 2 68438 1 248108 3 12612 -1 2548 0 472236
"
],
"text/plain": [
"shape: (6, 2)\n",
"βββββββββββββββββ¬βββββββββ\n",
"β nivelServicio β count β\n",
"β --- β --- β\n",
"β i64 β u32 β\n",
"βββββββββββββββββͺβββββββββ‘\n",
"β null β 354 β\n",
"β 2 β 68438 β\n",
"β 1 β 248108 β\n",
"β 3 β 12612 β\n",
"β -1 β 2548 β\n",
"β 0 β 472236 β\n",
"βββββββββββββββββ΄βββββββββ"
]
},
"execution_count": 116,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample_data.group_by('nivelServicio').count().collect()"
]
},
{
"cell_type": "code",
"execution_count": 117,
"metadata": {},
"outputs": [
{
"data": {},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.holoviews_exec.v0+json": "",
"text/html": [
"\n",
""
],
"text/plain": [
":Bars [nivelServicio] (count)"
]
},
"execution_count": 117,
"metadata": {
"application/vnd.holoviews_exec.v0+json": {
"id": "p2182"
}
},
"output_type": "execute_result"
}
],
"source": [
"sample_data.group_by('nivelServicio').count().sort('nivelServicio').collect().plot.bar(x='nivelServicio',y='count')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Como los valores de esta variable son:\n",
"- Fluido = 0\n",
"- Lento = 1\n",
"- Retenciones = 2\n",
"- CongestiΓ³n = 3\n",
"- Sin datos = -1\n",
"\n",
"Nos quedaremos solo con los valores `>=0` ya que son los que nos van a aportar informaciΓ³n acerca del trΓ‘fico."
]
},
{
"cell_type": "code",
"execution_count": 118,
"metadata": {},
"outputs": [],
"source": [
"sample_data = sample_data.filter(pl.col('nivelServicio')>=0)"
]
},
{
"cell_type": "code",
"execution_count": 119,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
shape: (5, 14) idelem descripcion accesoAsociado intensidad ocupacion carga nivelServicio intensidadSat subarea st_x st_y datetime date PK i64 str i64 i64 i64 i64 i64 i64 i64 str str datetime[ΞΌs] date str 6711 null null 3840 30 105 1 null null "442306,1965845β¦ "4481615,716877β¦ 2024-03-13 07:55:08 2024-03-13 null 10112 "Arturo Soria -β¦ 4604002 740 4 29 1 2438 3203 "443972,0182132β¦ "4478986,477391β¦ 2024-03-13 07:55:08 2024-03-13 "2024-03-13 07:β¦ 6038 "Torrelaguna -β¦ 4627002 380 2 28 1 1390 3246 "443981,9555378β¦ "4478451,452544β¦ 2024-03-13 07:55:08 2024-03-13 "2024-03-13 07:β¦ 6039 "Torrelaguna -β¦ 4628002 840 6 24 0 3000 3215 "443984,1391077β¦ "4478277,302264β¦ 2024-03-13 07:55:08 2024-03-13 "2024-03-13 07:β¦ 6040 "Torrelaguna -β¦ 4628001 520 5 31 1 2000 3215 "444079,3042011β¦ "4478026,603977β¦ 2024-03-13 07:55:08 2024-03-13 "2024-03-13 07:β¦
"
],
"text/plain": [
"shape: (5, 14)\n",
"ββββββββββ¬βββββββββββββ¬βββββββββββββ¬ββββββββββββ¬ββββ¬ββββββββββββ¬ββββββββββββ¬ββββββββββββ¬ββββββββββββ\n",
"β idelem β descripcio β accesoAsoc β intensida β β¦ β st_y β datetime β date β PK β\n",
"β --- β n β iado β d β β --- β --- β --- β --- β\n",
"β i64 β --- β --- β --- β β str β datetime[ β date β str β\n",
"β β str β i64 β i64 β β β ΞΌs] β β β\n",
"ββββββββββͺβββββββββββββͺβββββββββββββͺββββββββββββͺββββͺββββββββββββͺββββββββββββͺββββββββββββͺββββββββββββ‘\n",
"β 6711 β null β null β 3840 β β¦ β 4481615,7 β 2024-03-1 β 2024-03-1 β null β\n",
"β β β β β β 1687789 β 3 β 3 β β\n",
"β β β β β β β 07:55:08 β β β\n",
"β 10112 β Arturo β 4604002 β 740 β β¦ β 4478986,4 β 2024-03-1 β 2024-03-1 β 2024-03-1 β\n",
"β β Soria - β β β β 7739102 β 3 β 3 β 3 07:55:0 β\n",
"β β Pablo β β β β β 07:55:08 β β 8.000000_ β\n",
"β β Vidal - β β β β β β β I1011β¦ β\n",
"β β Vicβ¦ β β β β β β β β\n",
"β 6038 β Torrelagun β 4627002 β 380 β β¦ β 4478451,4 β 2024-03-1 β 2024-03-1 β 2024-03-1 β\n",
"β β a - β β β β 5254494 β 3 β 3 β 3 07:55:0 β\n",
"β β Arturo Bal β β β β β 07:55:08 β β 8.000000_ β\n",
"β β dasano-β¦ β β β β β β β I6038β¦ β\n",
"β 6039 β Torrelagun β 4628002 β 840 β β¦ β 4478277,3 β 2024-03-1 β 2024-03-1 β 2024-03-1 β\n",
"β β a - Av. β β β β 0226478 β 3 β 3 β 3 07:55:0 β\n",
"β β RamΓ³n y β β β β β 07:55:08 β β 8.000000_ β\n",
"β β Cajalβ¦ β β β β β β β I6039β¦ β\n",
"β 6040 β Torrelagun β 4628001 β 520 β β¦ β 4478026,6 β 2024-03-1 β 2024-03-1 β 2024-03-1 β\n",
"β β a - Sorza β β β β 0397703 β 3 β 3 β 3 07:55:0 β\n",
"β β no-Acceso β β β β β 07:55:08 β β 8.000000_ β\n",
"β β M3β¦ β β β β β β β I6040β¦ β\n",
"ββββββββββ΄βββββββββββββ΄βββββββββββββ΄ββββββββββββ΄ββββ΄ββββββββββββ΄ββββββββββββ΄ββββββββββββ΄ββββββββββββ"
]
},
"execution_count": 119,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample_data.head().collect()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Variable `intensidadSat`**"
]
},
{
"cell_type": "code",
"execution_count": 120,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
shape: (5, 2) intensidadSat count i64 u32 null 47500 9000 179 7500 179 7200 716 7100 98
"
],
"text/plain": [
"shape: (5, 2)\n",
"βββββββββββββββββ¬ββββββββ\n",
"β intensidadSat β count β\n",
"β --- β --- β\n",
"β i64 β u32 β\n",
"βββββββββββββββββͺββββββββ‘\n",
"β null β 47500 β\n",
"β 9000 β 179 β\n",
"β 7500 β 179 β\n",
"β 7200 β 716 β\n",
"β 7100 β 98 β\n",
"βββββββββββββββββ΄ββββββββ"
]
},
"execution_count": 120,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample_data.group_by(pl.col('intensidadSat')).count().sort('intensidadSat',descending=True).head().collect()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Identificadores con mayor intensidad"
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {},
"outputs": [
{
"data": {},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.holoviews_exec.v0+json": "",
"text/html": [
"\n",
""
],
"text/plain": [
":Bars [idelem] (intensidadSat)"
]
},
"execution_count": 121,
"metadata": {
"application/vnd.holoviews_exec.v0+json": {
"id": "p2244"
}
},
"output_type": "execute_result"
}
],
"source": [
"sample_data.filter(pl.col('intensidadSat').is_not_null()).group_by(pl.col('idelem')).max().sort('intensidadSat',descending=True).select(pl.col('idelem'),pl.col('intensidadSat')).head(10).collect().plot.bar(x='idelem', y='intensidadSat')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Zonas con mayor intensidad"
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {},
"outputs": [
{
"data": {},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.holoviews_exec.v0+json": "",
"text/html": [
"\n",
""
],
"text/plain": [
":Bars [descripcion] (intensidadSat)"
]
},
"execution_count": 122,
"metadata": {
"application/vnd.holoviews_exec.v0+json": {
"id": "p2306"
}
},
"output_type": "execute_result"
}
],
"source": [
"sample_data.filter((pl.col('descripcion').is_not_null()) & (pl.col('intensidadSat').is_not_null())).group_by(pl.col('descripcion')).max().sort('intensidadSat',descending=True).select(pl.col('descripcion'),pl.col('intensidadSat')).head(10).collect().plot.bar(x='descripcion', y='intensidadSat',rot=15)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Eliminamos los valores nulos"
]
},
{
"cell_type": "code",
"execution_count": 126,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
shape: (5, 13) idelem descripcion intensidad ocupacion carga nivelServicio intensidadSat subarea st_x st_y datetime date PK i64 str i64 i64 i64 i64 i64 i64 str str datetime[ΞΌs] date str 10112 "Arturo Soria -β¦ 740 4 29 1 2438 3203 "443972,0182132β¦ "4478986,477391β¦ 2024-03-13 07:55:08 2024-03-13 "2024-03-13 07:β¦ 6038 "Torrelaguna -β¦ 380 2 28 1 1390 3246 "443981,9555378β¦ "4478451,452544β¦ 2024-03-13 07:55:08 2024-03-13 "2024-03-13 07:β¦ 6039 "Torrelaguna -β¦ 840 6 24 0 3000 3215 "443984,1391077β¦ "4478277,302264β¦ 2024-03-13 07:55:08 2024-03-13 "2024-03-13 07:β¦ 6040 "Torrelaguna -β¦ 520 5 31 1 2000 3215 "444079,3042011β¦ "4478026,603977β¦ 2024-03-13 07:55:08 2024-03-13 "2024-03-13 07:β¦ 6041 "Av. RamΓ³n y Caβ¦ 1400 4 34 1 3380 3215 "443837,9341675β¦ "4478283,278897β¦ 2024-03-13 07:55:08 2024-03-13 "2024-03-13 07:β¦
"
],
"text/plain": [
"shape: (5, 13)\n",
"ββββββββββ¬βββββββββββββ¬βββββββββββββ¬ββββββββββββ¬ββββ¬ββββββββββββ¬ββββββββββββ¬ββββββββββββ¬ββββββββββββ\n",
"β idelem β descripcio β intensidad β ocupacion β β¦ β st_y β datetime β date β PK β\n",
"β --- β n β --- β --- β β --- β --- β --- β --- β\n",
"β i64 β --- β i64 β i64 β β str β datetime[ β date β str β\n",
"β β str β β β β β ΞΌs] β β β\n",
"ββββββββββͺβββββββββββββͺβββββββββββββͺββββββββββββͺββββͺββββββββββββͺββββββββββββͺββββββββββββͺββββββββββββ‘\n",
"β 10112 β Arturo β 740 β 4 β β¦ β 4478986,4 β 2024-03-1 β 2024-03-1 β 2024-03-1 β\n",
"β β Soria - β β β β 7739102 β 3 β 3 β 3 07:55:0 β\n",
"β β Pablo β β β β β 07:55:08 β β 8.000000_ β\n",
"β β Vidal - β β β β β β β I1011β¦ β\n",
"β β Vicβ¦ β β β β β β β β\n",
"β 6038 β Torrelagun β 380 β 2 β β¦ β 4478451,4 β 2024-03-1 β 2024-03-1 β 2024-03-1 β\n",
"β β a - β β β β 5254494 β 3 β 3 β 3 07:55:0 β\n",
"β β Arturo Bal β β β β β 07:55:08 β β 8.000000_ β\n",
"β β dasano-β¦ β β β β β β β I6038β¦ β\n",
"β 6039 β Torrelagun β 840 β 6 β β¦ β 4478277,3 β 2024-03-1 β 2024-03-1 β 2024-03-1 β\n",
"β β a - Av. β β β β 0226478 β 3 β 3 β 3 07:55:0 β\n",
"β β RamΓ³n y β β β β β 07:55:08 β β 8.000000_ β\n",
"β β Cajalβ¦ β β β β β β β I6039β¦ β\n",
"β 6040 β Torrelagun β 520 β 5 β β¦ β 4478026,6 β 2024-03-1 β 2024-03-1 β 2024-03-1 β\n",
"β β a - Sorza β β β β 0397703 β 3 β 3 β 3 07:55:0 β\n",
"β β no-Acceso β β β β β 07:55:08 β β 8.000000_ β\n",
"β β M3β¦ β β β β β β β I6040β¦ β\n",
"β 6041 β Av. RamΓ³n β 1400 β 4 β β¦ β 4478283,2 β 2024-03-1 β 2024-03-1 β 2024-03-1 β\n",
"β β y Cajal - β β β β 7889757 β 3 β 3 β 3 07:55:0 β\n",
"β β Puente β β β β β 07:55:08 β β 8.000000_ β\n",
"β β M30-β¦ β β β β β β β I6041β¦ β\n",
"ββββββββββ΄βββββββββββββ΄βββββββββββββ΄ββββββββββββ΄ββββ΄ββββββββββββ΄ββββββββββββ΄ββββββββββββ΄ββββββββββββ"
]
},
"execution_count": 126,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample_data = sample_data.filter(pl.col('intensidadSat').is_not_null())\n",
"sample_data.head().collect()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Variable `accesoAsociado`**"
]
},
{
"cell_type": "code",
"execution_count": 124,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
shape: (5, 2) accesoAsociado count i64 u32 null 70477 9905004 177 9905003 177 9905002 171 9905001 160
"
],
"text/plain": [
"shape: (5, 2)\n",
"ββββββββββββββββββ¬ββββββββ\n",
"β accesoAsociado β count β\n",
"β --- β --- β\n",
"β i64 β u32 β\n",
"ββββββββββββββββββͺββββββββ‘\n",
"β null β 70477 β\n",
"β 9905004 β 177 β\n",
"β 9905003 β 177 β\n",
"β 9905002 β 171 β\n",
"β 9905001 β 160 β\n",
"ββββββββββββββββββ΄ββββββββ"
]
},
"execution_count": 124,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample_data.group_by('accesoAsociado').count().sort('accesoAsociado',descending=True).head().collect()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Como no tenemos informaciΓ³n de esta variable, decidimos eliminarla ya que tampoco posee una gran correlaciΓ³n con el resto de variables"
]
},
{
"cell_type": "code",
"execution_count": 125,
"metadata": {},
"outputs": [],
"source": [
"sample_data = sample_data.drop('accesoAsociado')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## ConclusiΓ³n\n",
"\n",
"Para el primer experimetno terminamos con un dataset con las siguientes columnas:\n",
"\n",
"- `idelem`: str\n",
"- `descripcion`: str\n",
"- `intensidad`: int\n",
"- `ocupacion`: int\n",
"- `carga`: int\n",
"- `nivelServicio`: int\n",
"- `intensidadSat`: int\n",
"- `subarea`: str\n",
"- `st_x`: str\n",
"- `st_y`: str\n",
"- `datetime`: datetime\n",
"- `date`: date\n",
"- `PK`: str\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "venv",
"language": "python",
"name": "python3"
},
"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.10.12"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}