<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Software | Carlos Mendez</title><link>https://carlos-mendez.org/es/software/</link><atom:link href="https://carlos-mendez.org/es/software/index.xml" rel="self" type="application/rss+xml"/><description>Software</description><generator>Wowchemy (https://wowchemy.com)</generator><language>es-es</language><copyright>© 2018–2026 Carlos Mendez. Todos los derechos reservados.</copyright><image><url>https://carlos-mendez.org/media/icon_huedfae549300b4ca5d201a9bd09a3ecd5_79625_512x512_fill_lanczos_center_3.png</url><title>Software</title><link>https://carlos-mendez.org/es/software/</link></image><item><title>scspill</title><link>https://carlos-mendez.org/es/software/scspill/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://carlos-mendez.org/es/software/scspill/</guid><description>&lt;p>&lt;strong>Control sintético cuando el tratamiento se filtra: el efecto sobre la unidad tratada &lt;em>y&lt;/em> el desbordamiento que recibe cada donante.&lt;/strong>&lt;/p>
&lt;p>&lt;code>scspill&lt;/code> es un paquete de Python con modelos de control sintético que abandonan el supuesto SUTVA sobre el grupo de donantes. Se permite que el tratamiento alcance a los controles y cada modelo informa dos estimandos: el efecto sobre la unidad tratada, libre de contaminación, y el efecto de desbordamiento que recibe cada donante, algo que el control sintético clásico no puede expresar en absoluto. El modelo disponible hoy, &lt;code>sar&lt;/code>, canaliza los desbordamientos a través de los pesos espaciales que usted defina, escalados por una única intensidad ρ que se &lt;strong>estima en lugar de suponerse&lt;/strong>; ajusta pesos sintéticos con contracción de tipo herradura (horseshoe) y sin restricciones, de modo que los donantes pueden quedar excluidos, entrar con signo negativo o extrapolar, y devuelve incertidumbre bayesiana completa para ambos estimandos. Cuando ρ = 0 se reduce exactamente al control sintético bayesiano de tipo herradura. La arquitectura del estimador sigue a &lt;a href="https://github.com/jgreathouse9/mlsynth" target="_blank" rel="noopener">mlsynth&lt;/a> —una configuración de pydantic a la entrada y un objeto de resultados estandarizado a la salida— y los nombres de &lt;code>method&lt;/code> coinciden con los de su despachador &lt;code>SPILLSYNTH&lt;/code>, por lo que ambas bibliotecas se combinan con naturalidad.&lt;/p>
&lt;h3 id="-primeros-pasoshttpsquarcs-labgithubioscspillget-startedhtml">🚀 &lt;a href="https://quarcs-lab.github.io/scspill/get-started.html" target="_blank" rel="noopener">Primeros pasos&lt;/a>&lt;/h3>
&lt;p>Estime un modelo con la Proposición 99 de California en unas diez líneas: el &lt;strong>ATT con un intervalo de credibilidad del 95 %&lt;/strong>, la intensidad del desbordamiento ρ, el desbordamiento año por año que recibe cada donante, los diagnósticos MCMC y los gráficos contrafactuales.&lt;/p>
&lt;p>&lt;a href="https://colab.research.google.com/github/quarcs-lab/scspill/blob/main/notebooks/california.ipynb" target="_blank" rel="noopener">▶ Abrir en Colab&lt;/a>&lt;/p>
&lt;h3 id="-modeloshttpsquarcs-labgithubioscspillmodels">🧬 &lt;a href="https://quarcs-lab.github.io/scspill/models/" target="_blank" rel="noopener">Modelos&lt;/a>&lt;/h3>
&lt;p>Hoy se distribuye un modelo: &lt;a href="https://quarcs-lab.github.io/scspill/models/sar.html" target="_blank" rel="noopener">&lt;code>sar&lt;/code>&lt;/a>, el control sintético bayesiano con desbordamiento autorregresivo espacial de &lt;a href="https://doi.org/10.1093/ectj/utag006" target="_blank" rel="noopener">Sakaguchi y Tagawa (2026)&lt;/a>. Otros tres modelos que incorporan desbordamientos están en la &lt;a href="https://quarcs-lab.github.io/scspill/models/#planned" target="_blank" rel="noopener">hoja de ruta&lt;/a>: el de Cao y Dowd, el control sintético inclusivo de Di Stefano y Mellace, y el SCG con interferencia parcial de Grossi y coautores. &lt;strong>No están implementados&lt;/strong>, y &lt;code>SCSPILLConfig&lt;/code> rechaza sus nombres en lugar de recurrir a otro modelo de forma silenciosa.&lt;/p>
&lt;h3 id="-validaciónhttpsquarcs-labgithubioscspillarticlesvalidationhtml">🧪 &lt;a href="https://quarcs-lab.github.io/scspill/articles/validation.html" target="_blank" rel="noopener">Validación&lt;/a>&lt;/h3>
&lt;p>La evidencia de que el muestreador de &lt;code>sar&lt;/code> es correcto: la &lt;strong>prueba de distribución conjunta de Geweke (2004)&lt;/strong>, cuadrículas de sensibilidad a las distribuciones a priori, verificaciones predictivas a priori y validación cruzada frente a los intervalos de credibilidad congelados del código en R de los autores.&lt;/p>
&lt;h2 id="qué-incluye">Qué incluye&lt;/h2>
&lt;p>&lt;strong>&lt;code>scspill&lt;/code>&lt;/strong> — la capa de modelos. &lt;code>SCSPILL(config).fit()&lt;/code> devuelve el ATT y su intervalo de credibilidad, la trayectoria contrafactual, la distribución posterior de ρ, un panel de desbordamientos por tiempo y donante, y los diagnósticos MCMC.&lt;/p>
&lt;p>&lt;strong>&lt;code>scspill.validation&lt;/code>&lt;/strong> — la validación del muestreador de &lt;code>sar&lt;/code>: la prueba de distribución conjunta de Geweke, las cuadrículas de sensibilidad a las distribuciones a priori y las verificaciones predictivas a priori.&lt;/p>
&lt;p>&lt;strong>&lt;code>scspill.simulate&lt;/code>&lt;/strong> — el &lt;a href="https://quarcs-lab.github.io/scspill/articles/simulation-study.html" target="_blank" rel="noopener">motor de Monte Carlo&lt;/a> de &lt;code>sar&lt;/code>: un proceso generador de datos SAR sobre una retícula de contigüidad tipo torre y la comparación SCM / BSCM / SCSPILL que sustenta los cuadros 1 y 2 del artículo.&lt;/p>
&lt;p>&lt;strong>&lt;code>scspill.data&lt;/code>&lt;/strong> — los paneles de desbordamiento que se describen más abajo. Son independientes del modelo, así que cualquier modelo que se añada más adelante podrá usarlos sin cambios.&lt;/p>
&lt;p>&lt;strong>&lt;code>sar&lt;/code> está validado, no solo implementado&lt;/strong> — se contrasta con el paquete de replicación en R de los autores: las distribuciones posteriores de California y Sudán frente a los intervalos de credibilidad congelados en R, la cuadrícula de Monte Carlo frente a los cuadros congelados del artículo, y los estadísticos predictivos a priori hasta el tercer decimal. Las opciones por defecto son &lt;em>fieles al artículo&lt;/em>: se corrigen varios errores documentados de la implementación de referencia, cada uno con una vía de escape o una comparación que cuantifica la diferencia. Véase la &lt;a href="https://quarcs-lab.github.io/scspill/models/sar.html" target="_blank" rel="noopener">página del modelo &lt;code>sar&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="casos-de-estudio-incluidos">Casos de estudio incluidos&lt;/h2>
&lt;p>&lt;code>scspill.data&lt;/code> incluye dos &lt;a href="https://quarcs-lab.github.io/scspill/articles/datasets.html" target="_blank" rel="noopener">conjuntos de datos&lt;/a> listos para estimar:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>California&lt;/strong> — la Proposición 99, 39 estados (1970–2000): ventas de cigarrillos per cápita con pesos de contigüidad tipo torre, mediante &lt;code>scspill.data.load_california()&lt;/code>.&lt;/li>
&lt;li>&lt;strong>Sudán&lt;/strong> — la secesión de 2011, 34 países africanos (2000–2015): PIB per cápita con pesos de red comercial, mediante &lt;code>scspill.data.load_sudan()&lt;/code>. Se desarrolla en el &lt;a href="https://quarcs-lab.github.io/scspill/sudan.html" target="_blank" rel="noopener">caso de estudio de Sudán&lt;/a>.&lt;/li>
&lt;/ul>
&lt;h2 id="instalación">Instalación&lt;/h2>
&lt;p>Instale la versión más reciente desde PyPI (la instalación básica usa solo NumPy/SciPy; el extra &lt;code>numba&lt;/code> añade muestreadores compilados con JIT):&lt;/p>
&lt;pre>&lt;code class="language-bash">pip install scspill # NumPy/SciPy sampler backend
pip install &amp;quot;scspill[numba]&amp;quot; # + JIT-compiled samplers (~10x faster)
pip install &amp;quot;scspill @ git+https://github.com/quarcs-lab/scspill.git&amp;quot; # latest
&lt;/code>&lt;/pre>
&lt;p>Requiere Python 3.10 o superior.&lt;/p>
&lt;h2 id="de-un-vistazo">De un vistazo&lt;/h2>
&lt;p>Cargue un caso de estudio incluido, ajuste el muestreador y lea ambos estimandos:&lt;/p>
&lt;pre>&lt;code class="language-python">from scspill import SCSPILL
from scspill.data import load_california
panel = load_california() # Prop 99 panel + rook-contiguity weights
result = SCSPILL(
{**panel.config_kwargs(), &amp;quot;m_iter&amp;quot;: 20_000, &amp;quot;burn&amp;quot;: 10_000, &amp;quot;seed&amp;quot;: 42}
).fit()
result.att, result.att_ci # treatment effect on California + 95% CrI
result.rho_hat, result.rho_ci # spillover intensity posterior
result.spillover_panel[&amp;quot;Nevada&amp;quot;] # the effect received by Nevada, per year
result.diagnostics() # ESS / R-hat / MCSE per chain
result.plot(kind=&amp;quot;panel&amp;quot;) # counterfactual | effect | top spillovers
&lt;/code>&lt;/pre>
&lt;p>Diríjase a &lt;a href="https://quarcs-lab.github.io/scspill/get-started.html" target="_blank" rel="noopener">Primeros pasos&lt;/a>, &lt;a href="https://quarcs-lab.github.io/scspill/models/" target="_blank" rel="noopener">Modelos&lt;/a> y &lt;a href="https://quarcs-lab.github.io/scspill/articles/validation.html" target="_blank" rel="noopener">Validación&lt;/a> para ver los estimadores en acción.&lt;/p>
&lt;h2 id="construido-sobre">Construido sobre&lt;/h2>
&lt;p>&lt;code>scspill&lt;/code> mantiene sus dependencias deliberadamente ligeras: la pila científica moderna de Python y nada más.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://numpy.org" target="_blank" rel="noopener">NumPy&lt;/a>&lt;/strong> y &lt;strong>&lt;a href="https://scipy.org" target="_blank" rel="noopener">SciPy&lt;/a>&lt;/strong> — el motor del muestreador&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://pandas.pydata.org" target="_blank" rel="noopener">pandas&lt;/a>&lt;/strong> — los paneles y las tablas de desbordamientos&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://docs.pydantic.dev" target="_blank" rel="noopener">pydantic&lt;/a>&lt;/strong> — la configuración validada del estimador&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://matplotlib.org" target="_blank" rel="noopener">matplotlib&lt;/a>&lt;/strong> — las figuras de diagnóstico y contrafactuales&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://numba.pydata.org" target="_blank" rel="noopener">numba&lt;/a>&lt;/strong> — muestreadores opcionales compilados con JIT&lt;/li>
&lt;/ul>
&lt;h2 id="agradecimiento">Agradecimiento&lt;/h2>
&lt;p>&lt;code>scspill&lt;/code> es obra de Carlos Mendez, Shosei Sakaguchi y Hayato Tagawa. El paquete de Python está escrito y es mantenido por Carlos Mendez; el modelo &lt;code>sar&lt;/code> y su implementación original en R/C++ son obra de Shosei Sakaguchi y Hayato Tagawa. Su &lt;a href="https://doi.org/10.5281/zenodo.19066186" target="_blank" rel="noopener">paquete de replicación&lt;/a> se distribuye bajo licencia MIT, su aviso de derechos de autor se conserva en el archivo &lt;code>LICENSE&lt;/code> de la biblioteca, y cada versión de &lt;code>scspill&lt;/code> se valida de forma cruzada frente a sus resultados congelados. La arquitectura del estimador sigue a &lt;a href="https://github.com/jgreathouse9/mlsynth" target="_blank" rel="noopener">mlsynth&lt;/a>, de Jared Greathouse; la infraestructura de documentación sigue al paquete &lt;a href="https://github.com/quarcs-lab/geometrics" target="_blank" rel="noopener">geometrics&lt;/a> del QuaRCS Lab.&lt;/p>
&lt;p>Si utiliza &lt;code>scspill&lt;/code>, cite el software (los metadatos legibles por máquina están en &lt;a href="https://github.com/quarcs-lab/scspill/blob/main/CITATION.cff" target="_blank" rel="noopener">&lt;code>CITATION.cff&lt;/code>&lt;/a>):&lt;/p>
&lt;blockquote>
&lt;p>Mendez, C., Sakaguchi, S., &amp;amp; Tagawa, H. (2026). &lt;em>Synthetic Control Models with Spillovers in Python&lt;/em> (version 0.2.1). &lt;a href="https://github.com/quarcs-lab/scspill" target="_blank" rel="noopener">https://github.com/quarcs-lab/scspill&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;p>Distribuido bajo la licencia MIT.&lt;/p></description></item><item><title>geometrics</title><link>https://carlos-mendez.org/es/software/geometrics/</link><pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate><guid>https://carlos-mendez.org/es/software/geometrics/</guid><description>&lt;p>&lt;strong>Explore, analice y aprenda sobre el crecimiento, la convergencia y la desigualdad regionales — de forma espacial, en Python.&lt;/strong>&lt;/p>
&lt;p>&lt;code>geometrics&lt;/code> se apoya en la familia &lt;a href="https://pysal.org/" target="_blank" rel="noopener">PySAL&lt;/a> y traduce los análisis estándar de la literatura de convergencia regional en funciones fáciles de aplicar que devuelven figuras interactivas de &lt;a href="https://plotly.com/python/" target="_blank" rel="noopener">Plotly&lt;/a>, tablas con calidad de publicación de &lt;a href="https://posit-dev.github.io/great-tables/" target="_blank" rel="noopener">Great Tables&lt;/a> y DataFrames ordenados (tidy). Combina un flujo de trabajo &lt;strong>Explorar / Analizar / Aprender&lt;/strong> con una &lt;strong>capa pedagógica&lt;/strong> integrada que interpreta y explica cada resultado, y &lt;strong>tres aplicaciones sin código&lt;/strong>. Está pensada para estudiantes, docentes e investigadores aplicados por igual.&lt;/p>
&lt;h3 id="-explorarhttpsquarcs-labgithubiogeometricsexplorehtml">🗺️ &lt;a href="https://quarcs-lab.github.io/geometrics/explore.html" target="_blank" rel="noopener">Explorar&lt;/a>&lt;/h3>
&lt;p>Cartografíe y describa sus regiones: mapas coropléticos clasificados y animados, conectividad de pesos espaciales, &lt;strong>diagramas de dispersión de Moran y mapas de conglomerados LISA&lt;/strong>, y vistas espaciotemporales.&lt;/p>
&lt;p>&lt;a href="https://geometrics-explore.streamlit.app/" target="_blank" rel="noopener">🚀 Abrir la app&lt;/a> · &lt;a href="https://colab.research.google.com/github/quarcs-lab/geometrics/blob/main/notebooks/explore.ipynb" target="_blank" rel="noopener">▶ Abrir en Colab&lt;/a>&lt;/p>
&lt;h3 id="-analizarhttpsquarcs-labgithubiogeometricsanalyzehtml">🧮 &lt;a href="https://quarcs-lab.github.io/geometrics/analyze.html" target="_blank" rel="noopener">Analizar&lt;/a>&lt;/h3>
&lt;p>Estime los modelos: &lt;strong>convergencia β, σ y de clubes&lt;/strong>, modelos econométricos espaciales con impactos, dinámicas de Markov y de Markov espacial, &lt;strong>desigualdad de Gini/Theil&lt;/strong> con descomposición espacial, y GWR / GWR multiescala.&lt;/p>
&lt;p>&lt;a href="https://geometrics-analyze.streamlit.app/" target="_blank" rel="noopener">🚀 Abrir la app&lt;/a> · &lt;a href="https://colab.research.google.com/github/quarcs-lab/geometrics/blob/main/notebooks/analyze.ipynb" target="_blank" rel="noopener">▶ Abrir en Colab&lt;/a>&lt;/p>
&lt;h3 id="-aprenderhttpsquarcs-labgithubiogeometricslearnhtml">📚 &lt;a href="https://quarcs-lab.github.io/geometrics/learn.html" target="_blank" rel="noopener">Aprender&lt;/a>&lt;/h3>
&lt;p>Conozca las ideas detrás de los métodos: &lt;strong>11 entornos de práctica (sandboxes) ejecutables&lt;/strong> donde usted ajusta una verdad conocida, un índice de explicadores de &lt;strong>30 temas&lt;/strong> y una lectura en lenguaje sencillo de cada resultado.&lt;/p>
&lt;p>&lt;a href="https://geometrics-learn.streamlit.app/" target="_blank" rel="noopener">🚀 Abrir la app&lt;/a> · &lt;a href="https://colab.research.google.com/github/quarcs-lab/geometrics/blob/main/notebooks/learn.ipynb" target="_blank" rel="noopener">▶ Abrir en Colab&lt;/a>&lt;/p>
&lt;h2 id="pruebe-las-aplicaciones-en-su-navegador">Pruebe las aplicaciones en su navegador&lt;/h2>
&lt;p>Sin instalación ni código: las tres aplicaciones de &lt;code>geometrics&lt;/code> ejecutan todo el flujo de trabajo en su navegador: mapas y modelos con apuntar y hacer clic, tablas ordenables y exportaciones reproducibles. Cada una es la versión sin código de un caso de estudio de la documentación.&lt;/p>
&lt;p>&lt;a href="https://geometrics-explore.streamlit.app/" target="_blank" rel="noopener">🗺️ App Explorar&lt;/a> · &lt;a href="https://geometrics-analyze.streamlit.app/" target="_blank" rel="noopener">🧮 App Analizar&lt;/a> · &lt;a href="https://geometrics-learn.streamlit.app/" target="_blank" rel="noopener">📚 App Aprender&lt;/a>&lt;/p>
&lt;h2 id="qué-incluye">Qué incluye&lt;/h2>
&lt;p>&lt;strong>Mapas y ESDA&lt;/strong> — mapas coropléticos clasificados / animados, conectividad de pesos espaciales, diagramas de dispersión de Moran, mapas de conglomerados LISA y la I de Moran a lo largo del tiempo.&lt;/p>
&lt;p>&lt;strong>Dinámicas espaciotemporales&lt;/strong> — evolución de la distribución transversal y mapas de calor por entidad y tiempo.&lt;/p>
&lt;p>&lt;strong>Convergencia&lt;/strong> — convergencia β con estimadores MCO o espaciales, convergencia σ y clubes de convergencia de Phillips–Sul con sus mapas.&lt;/p>
&lt;p>&lt;strong>Econometría espacial&lt;/strong> — el conjunto &lt;code>spreg&lt;/code>, diagnósticos LM con recomendación de modelo y robustez ante pesos alternativos.&lt;/p>
&lt;p>&lt;strong>Dinámicas de distribución&lt;/strong> — análisis de transiciones de Markov y de Markov espacial.&lt;/p>
&lt;p>&lt;strong>Desigualdad&lt;/strong> — tendencias de Gini / Theil con descomposición espacial y descomposición de Theil entre/dentro (between/within).&lt;/p>
&lt;p>&lt;strong>Modelos locales&lt;/strong> — GWR y GWR multiescala con coeficientes locales cartografiados.&lt;/p>
&lt;p>&lt;strong>Entornos de práctica (sandboxes)&lt;/strong> — 11 funciones pedagógicas que simulan datos a partir de procesos generadores conocidos.&lt;/p>
&lt;h2 id="casos-de-estudio-incluidos">Casos de estudio incluidos&lt;/h2>
&lt;p>&lt;code>geometrics.data&lt;/code> incluye dos casos de estudio listos para analizar:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>India&lt;/strong> — 520 distritos, luces nocturnas satelitales (1996–2010): &lt;code>gm.data.load_india()&lt;/code>, &lt;code>load_india_states()&lt;/code>.&lt;/li>
&lt;li>&lt;strong>Bolivia&lt;/strong> — PIB local anclado en las PWT (US\$ en PPA de 2021, 2012–2022) a tres escalas geográficas: &lt;code>gm.data.load_bolivia()&lt;/code> (112 provincias), &lt;code>load_bolivia_departments()&lt;/code> (9 departamentos) y &lt;code>load_bolivia_grid()&lt;/code> (1603 celdas).&lt;/li>
&lt;/ul>
&lt;h2 id="instalación">Instalación&lt;/h2>
&lt;p>Instale la versión más reciente desde PyPI (la instalación básica cubre la mayoría de los flujos de trabajo; los extras añaden las dinámicas de Markov, las aplicaciones sin código y la exportación a PNG):&lt;/p>
&lt;pre>&lt;code class="language-bash">pip install geometrics # core
pip install &amp;quot;geometrics[dynamics]&amp;quot; # + Markov / spatial Markov (giddy)
pip install &amp;quot;geometrics[streamlit]&amp;quot; # + the three no-code apps
pip install &amp;quot;geometrics[all]&amp;quot; # everything, incl. PNG export
&lt;/code>&lt;/pre>
&lt;p>Requiere Python 3.11 o superior.&lt;/p>
&lt;h2 id="de-un-vistazo">De un vistazo&lt;/h2>
&lt;p>Cargue un caso de estudio incluido, asigne las etiquetas de sus variables y cartografíelo: cada figura es un objeto interactivo de Plotly.&lt;/p>
&lt;pre>&lt;code class="language-python">import geometrics as gm
# India — 520 districts, satellite nighttime lights (1996–2010)
gdf, df, df_dict = gm.data.load_india()
df = gm.set_labels(df, df_dict, set_panel=True)
# A classified choropleth of nighttime lights in 2010
gm.explore_choropleth_map(df, &amp;quot;ntl_total&amp;quot;, gdf=gdf, period=2010).fig
&lt;/code>&lt;/pre>
&lt;p>&lt;strong>Estime la convergencia y deje que se explique sola&lt;/strong> — convergencia β y σ, cada una con una lectura en lenguaje sencillo:&lt;/p>
&lt;pre>&lt;code class="language-python">beta = gm.analyze_beta_convergence(df, &amp;quot;ntl_total&amp;quot;, model=&amp;quot;ols&amp;quot;)
print(beta.interpret()) # plain-language, associational reading
sigma = gm.analyze_sigma_convergence(df, &amp;quot;ntl_total&amp;quot;)
&lt;/code>&lt;/pre>
&lt;p>&lt;strong>Aprenda sobre la marcha&lt;/strong> — entornos de práctica y explicadores de conceptos:&lt;/p>
&lt;pre>&lt;code class="language-python">gm.learn_beta_convergence(convergence_rate=0.02) # a runnable concept sandbox
print(gm.explain(&amp;quot;spatial_autocorrelation&amp;quot;)) # a concept explainer; gm.list_topics() lists all 30
&lt;/code>&lt;/pre>
&lt;p>Diríjase a &lt;a href="https://quarcs-lab.github.io/geometrics/explore.html" target="_blank" rel="noopener">Explorar&lt;/a>, &lt;a href="https://quarcs-lab.github.io/geometrics/analyze.html" target="_blank" rel="noopener">Analizar&lt;/a> y &lt;a href="https://quarcs-lab.github.io/geometrics/learn.html" target="_blank" rel="noopener">Aprender&lt;/a> para ver cada función en acción.&lt;/p>
&lt;h2 id="construido-sobre">Construido sobre&lt;/h2>
&lt;p>&lt;code>geometrics&lt;/code> se apoya en el ecosistema de análisis espacial &lt;a href="https://pysal.org/" target="_blank" rel="noopener">PySAL&lt;/a> y en la pila moderna de datos de Python:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://pysal.org/" target="_blank" rel="noopener">PySAL&lt;/a>&lt;/strong> — &lt;code>libpysal&lt;/code> (pesos), &lt;code>esda&lt;/code> (I de Moran / LISA), &lt;code>giddy&lt;/code> (dinámicas de distribución), &lt;code>inequality&lt;/code> (Gini / Theil), &lt;code>mapclassify&lt;/code> (clasificación de mapas coropléticos), &lt;code>spreg&lt;/code> (regresión espacial) y &lt;code>mgwr&lt;/code> (GWR multiescala)&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://geopandas.org/" target="_blank" rel="noopener">geopandas&lt;/a>&lt;/strong> — marcos de datos geoespaciales&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://plotly.com/python/" target="_blank" rel="noopener">Plotly&lt;/a>&lt;/strong> — figuras interactivas&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://posit-dev.github.io/great-tables/" target="_blank" rel="noopener">Great Tables&lt;/a>&lt;/strong> — tablas con calidad de publicación&lt;/li>
&lt;/ul>
&lt;h2 id="agradecimiento">Agradecimiento&lt;/h2>
&lt;p>&lt;code>geometrics&lt;/code> se desarrolla en el &lt;a href="https://quarcs-lab.org" target="_blank" rel="noopener">QuaRCS Lab&lt;/a> (Ciencia Regional Cuantitativa y Computacional) y se apoya en el proyecto &lt;a href="https://pysal.org/" target="_blank" rel="noopener">PySAL&lt;/a>, geopandas, Plotly y Great Tables. Si utiliza &lt;code>geometrics&lt;/code> en su investigación, cite el repositorio (consulte &lt;a href="https://github.com/quarcs-lab/geometrics/blob/main/CITATION.cff" target="_blank" rel="noopener">&lt;code>CITATION.cff&lt;/code>&lt;/a>) y los paquetes subyacentes de PySAL.&lt;/p></description></item><item><title>expdpy</title><link>https://carlos-mendez.org/es/software/expdpy/</link><pubDate>Thu, 18 Jun 2026 00:00:00 +0000</pubDate><guid>https://carlos-mendez.org/es/software/expdpy/</guid><description>&lt;p>&lt;strong>Explore, analice y aprenda datos de panel — de forma interactiva, en Python.&lt;/strong>&lt;/p>
&lt;p>&lt;code>expdpy&lt;/code> combina funciones componibles que devuelven figuras interactivas de &lt;a href="https://plotly.com/python/" target="_blank" rel="noopener">Plotly&lt;/a> y tablas con calidad de publicación de &lt;a href="https://posit-dev.github.io/great-tables/" target="_blank" rel="noopener">Great Tables&lt;/a> con &lt;strong>econometría al estilo fixest&lt;/strong>, una &lt;strong>capa pedagógica&lt;/strong> integrada que interpreta y explica cada resultado, y &lt;strong>tres aplicaciones sin código&lt;/strong>. Está pensada para estudiantes, docentes e investigadores aplicados por igual.&lt;/p>
&lt;h3 id="-explorarhttpscmg777githubioexpdpyexplorehtml">🔍 &lt;a href="https://cmg777.github.io/expdpy/explore.html" target="_blank" rel="noopener">Explorar&lt;/a>&lt;/h3>
&lt;p>Describa y visualice su panel: tablas, distribuciones, mapas de valores faltantes, tendencias temporales, comparaciones por grupos, diagramas de dispersión, &lt;strong>variación intra/inter (within/between)&lt;/strong> y &lt;strong>dinámicas de panel&lt;/strong>.&lt;/p>
&lt;p>&lt;a href="https://expdpy-explore.streamlit.app/" target="_blank" rel="noopener">🚀 Abrir la app&lt;/a> · &lt;a href="https://colab.research.google.com/github/cmg777/expdpy/blob/main/notebooks/explore.ipynb" target="_blank" rel="noopener">▶ Abrir en Colab&lt;/a>&lt;/p>
&lt;h3 id="-analizarhttpscmg777githubioexpdpyanalyzehtml">🧮 &lt;a href="https://cmg777.github.io/expdpy/analyze.html" target="_blank" rel="noopener">Analizar&lt;/a>&lt;/h3>
&lt;p>Estime modelos: efectos fijos / aleatorios / &lt;strong>aleatorios correlacionados&lt;/strong>, FWL, la prueba de Hausman, inferencia robusta, &lt;strong>estudio de eventos / DiD&lt;/strong>, &lt;strong>convergencia β/σ/de clubes&lt;/strong> y la curva de &lt;strong>ondas de Kuznets&lt;/strong>.&lt;/p>
&lt;p>&lt;a href="https://expdpy-analyze.streamlit.app/" target="_blank" rel="noopener">🚀 Abrir la app&lt;/a> · &lt;a href="https://colab.research.google.com/github/cmg777/expdpy/blob/main/notebooks/analyze.ipynb" target="_blank" rel="noopener">▶ Abrir en Colab&lt;/a>&lt;/p>
&lt;h3 id="-aprenderhttpscmg777githubioexpdpylearnhtml">📚 &lt;a href="https://cmg777.github.io/expdpy/learn.html" target="_blank" rel="noopener">Aprender&lt;/a>&lt;/h3>
&lt;p>Conozca las ideas detrás de los métodos: &lt;strong>9 entornos de práctica (sandboxes) ejecutables&lt;/strong> donde usted ajusta una verdad conocida, un índice de explicadores de &lt;strong>27 temas&lt;/strong> y una lectura en lenguaje sencillo de cada resultado.&lt;/p>
&lt;p>&lt;a href="https://expdpy-learn.streamlit.app/" target="_blank" rel="noopener">🚀 Abrir la app&lt;/a> · &lt;a href="https://colab.research.google.com/github/cmg777/expdpy/blob/main/notebooks/learn.ipynb" target="_blank" rel="noopener">▶ Abrir en Colab&lt;/a>&lt;/p>
&lt;h2 id="pruebe-las-aplicaciones-en-su-navegador">Pruebe las aplicaciones en su navegador&lt;/h2>
&lt;p>Sin instalación ni código: las tres aplicaciones &lt;code>ExPdPy&lt;/code> ejecutan todo el flujo de trabajo en su navegador: una canalización de ejemplo, análisis con apuntar y hacer clic, tablas ordenables y exportación reproducible a cuadernos. Cada una es la versión sin código de un caso de estudio de la documentación.&lt;/p>
&lt;p>&lt;a href="https://expdpy-explore.streamlit.app/" target="_blank" rel="noopener">🔍 App Explorar&lt;/a> · &lt;a href="https://expdpy-analyze.streamlit.app/" target="_blank" rel="noopener">🧮 App Analizar&lt;/a> · &lt;a href="https://expdpy-learn.streamlit.app/" target="_blank" rel="noopener">📚 App Aprender&lt;/a>&lt;/p>
&lt;h2 id="qué-incluye">Qué incluye&lt;/h2>
&lt;p>&lt;strong>Explorar&lt;/strong> — tablas descriptivas / de correlación / de observaciones extremas, histogramas y gráficos de barras, tendencias temporales y por cuantiles, vistas por grupos de barras / violín / tendencias, un mapa de calor de valores faltantes, diagramas de dispersión con un suavizado LOESS opcional, la descomposición intra/inter (&lt;code>xtsum&lt;/code>), trayectorias por unidad, diagnósticos de estructura del panel, dinámicas de distribución y transición, y &lt;code>treat_outliers&lt;/code>.&lt;/p>
&lt;p>&lt;strong>Analizar&lt;/strong> — MCO con &lt;strong>efectos fijos multidireccionales&lt;/strong> y &lt;strong>errores estándar agrupados (clustered)&lt;/strong> mediante &lt;a href="https://github.com/py-econometrics/pyfixest" target="_blank" rel="noopener">pyfixest&lt;/a>; un &lt;code>analyze_estimation&lt;/code> más completo (por pasos / múltiples resultados, errores estándar de Newey–West y Driscoll–Kraay); estimadores &lt;strong>agrupado (pooled) / inter (between) / de efectos fijos / de efectos aleatorios&lt;/strong> y el estimador de &lt;strong>efectos aleatorios correlacionados (Mundlak)&lt;/strong>; la &lt;strong>prueba de Hausman&lt;/strong>; posestimación (gráficos de efectos fijos, predicciones, pruebas conjuntas de Wald); &lt;strong>inferencia robusta&lt;/strong> (inferencia por aleatorización, bootstrap de clúster salvaje); gráficos de &lt;strong>Frisch–Waugh–Lovell&lt;/strong> y de &lt;strong>coeficientes&lt;/strong>; &lt;strong>estudios de eventos / diferencias en diferencias escalonadas&lt;/strong> modernos (&lt;code>did2s&lt;/code>, Sun–Abraham, LP-DiD, TWFE dinámico); &lt;strong>convergencia β, σ y de clubes&lt;/strong>; y la curva de &lt;strong>ondas de Kuznets&lt;/strong> con estimadores agrupado / inter / intra.&lt;/p>
&lt;p>&lt;strong>Aprender&lt;/strong> — cada resultado habla en lenguaje sencillo: &lt;code>.interpret()&lt;/code> ofrece una lectura &lt;strong>asociacional&lt;/strong> (nunca una afirmación causal, salvo que el diseño lo permita) y &lt;code>.explain()&lt;/code> / &lt;code>explain(topic)&lt;/code> / &lt;code>list_topics()&lt;/code> permiten explorar &lt;strong>27&lt;/strong> explicadores de conceptos. &lt;strong>Nueve entornos de práctica (sandboxes)&lt;/strong> simulan datos para que usted pueda &lt;em>ver&lt;/em> y ajustar una verdad conocida: la identidad de primeras diferencias ≈ centrado en la media ≈ variables ficticias, los efectos fijos, el agrupamiento (clustering), el sesgo por variable omitida, la convergencia β/σ/de clubes y la onda de Kuznets.&lt;/p>
&lt;p>&lt;strong>Conjuntos de datos incluidos&lt;/strong> — &lt;code>expdpy.data&lt;/code> incluye paneles listos para explorar: &lt;strong>&lt;code>kuznets&lt;/code>&lt;/strong> (la demostración insignia de la curva de Kuznets en forma de N), &lt;code>gapminder&lt;/code>, &lt;strong>&lt;code>staggered_did&lt;/code>&lt;/strong> (estudio de eventos / DiD), &lt;strong>&lt;code>productivity&lt;/code>&lt;/strong> y &lt;strong>&lt;code>bolivia112_gdppc&lt;/code>&lt;/strong> (convergencia). Consulte la página del &lt;a href="https://cmg777.github.io/expdpy/explanation/kuznets-dataset.html" target="_blank" rel="noopener">conjunto de datos kuznets&lt;/a> para ver el diccionario de datos.&lt;/p>
&lt;h2 id="instalación">Instalación&lt;/h2>
&lt;p>Instale la versión más reciente desde PyPI (los efectos aleatorios, el CRE y la prueba de Hausman funcionan de fábrica; las aplicaciones necesitan el extra &lt;code>streamlit&lt;/code>):&lt;/p>
&lt;pre>&lt;code class="language-bash">pip install expdpy
pip install &amp;quot;expdpy[streamlit]&amp;quot; # the no-code ExPdPy apps (Streamlit)
&lt;/code>&lt;/pre>
&lt;p>Usando &lt;a href="https://docs.astral.sh/uv/" target="_blank" rel="noopener">uv&lt;/a>:&lt;/p>
&lt;pre>&lt;code class="language-bash">uv pip install expdpy
uv pip install &amp;quot;expdpy[streamlit]&amp;quot;
&lt;/code>&lt;/pre>
&lt;p>Para la versión más reciente sin publicar, instale directamente desde la rama &lt;code>main&lt;/code>:&lt;/p>
&lt;pre>&lt;code class="language-bash">pip install &amp;quot;git+https://github.com/cmg777/expdpy.git&amp;quot;
&lt;/code>&lt;/pre>
&lt;p>Requiere Python 3.10+.&lt;/p>
&lt;h2 id="de-un-vistazo">De un vistazo&lt;/h2>
&lt;p>El ejemplo principal a lo largo de esta documentación es el panel &lt;code>kuznets&lt;/code> incluido (80 países × 2015–2025): un conjunto de datos sintético cuya desigualdad regional traza una &lt;strong>curva de Kuznets en forma de N&lt;/strong> en el ingreso: primero asciende, luego desciende y vuelve a ascender con ingresos muy altos.&lt;/p>
&lt;pre>&lt;code class="language-python">import expdpy as ex
from expdpy.data import load_kuznets
df = load_kuznets()
# The N-shaped regional Kuznets curve: regional inequality vs (log) GDP per capita
ex.explore_scatter_plot(
df, x=&amp;quot;log_gdp_pc&amp;quot;, y=&amp;quot;gini_regional&amp;quot;, color=&amp;quot;continent&amp;quot;, size=&amp;quot;population&amp;quot;, loess=1
).fig
&lt;/code>&lt;/pre>
&lt;p>&lt;strong>Ejecute una regresión y deje que se explique sola&lt;/strong> — efectos fijos bidireccionales, errores estándar agrupados, una lectura en lenguaje sencillo y un gráfico de coeficientes:&lt;/p>
&lt;pre>&lt;code class="language-python">res = ex.analyze_regression_table(
df,
dvs=&amp;quot;gini_regional&amp;quot;,
idvs=[&amp;quot;log_gdp_pc&amp;quot;, &amp;quot;log_gdp_pc_sq&amp;quot;, &amp;quot;log_gdp_pc_cu&amp;quot;],
feffects=[&amp;quot;country&amp;quot;, &amp;quot;year&amp;quot;],
clusters=[&amp;quot;country&amp;quot;],
)
print(res.interpret()) # plain-language, associational reading
ex.analyze_coefficient_plot(res) # themed coefficient plot with confidence intervals
&lt;/code>&lt;/pre>
&lt;p>&lt;strong>Aprenda sobre la marcha&lt;/strong> — entornos de práctica y explicadores de conceptos:&lt;/p>
&lt;pre>&lt;code class="language-python">ex.learn_first_differences() # first differences ≈ demeaning ≈ dummy variables
print(ex.explain(&amp;quot;fixed_effects&amp;quot;)) # a concept explainer; ex.list_topics() lists all 27
&lt;/code>&lt;/pre>
&lt;p>Diríjase a &lt;a href="https://cmg777.github.io/expdpy/explore.html" target="_blank" rel="noopener">Explorar&lt;/a>, &lt;a href="https://cmg777.github.io/expdpy/analyze.html" target="_blank" rel="noopener">Analizar&lt;/a> y &lt;a href="https://cmg777.github.io/expdpy/learn.html" target="_blank" rel="noopener">Aprender&lt;/a> para ver cada función en acción, o a la página del &lt;a href="https://cmg777.github.io/expdpy/explanation/kuznets-dataset.html" target="_blank" rel="noopener">conjunto de datos kuznets&lt;/a> para el diccionario de datos.&lt;/p>
&lt;h2 id="construido-sobre">Construido sobre&lt;/h2>
&lt;p>&lt;code>expdpy&lt;/code> se apoya en la pila moderna de datos y econometría de Python:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://plotly.com/python/" target="_blank" rel="noopener">Plotly&lt;/a>&lt;/strong> — figuras interactivas&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://github.com/py-econometrics/pyfixest" target="_blank" rel="noopener">pyfixest&lt;/a>&lt;/strong> — estimadores de efectos fijos y de diferencias en diferencias&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://posit-dev.github.io/great-tables/" target="_blank" rel="noopener">Great Tables&lt;/a>&lt;/strong> — tablas con calidad de publicación&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://bashtage.github.io/linearmodels/" target="_blank" rel="noopener">linearmodels&lt;/a>&lt;/strong> — efectos aleatorios / inter / aleatorios correlacionados y la prueba de Hausman&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://streamlit.io/" target="_blank" rel="noopener">Streamlit&lt;/a>&lt;/strong> — las aplicaciones &lt;code>ExPdPy&lt;/code> sin código&lt;/li>
&lt;/ul>
&lt;h2 id="agradecimiento">Agradecimiento&lt;/h2>
&lt;p>expdpy comenzó como una adaptación a Python del excelente paquete de R &lt;a href="https://github.com/trr266/ExPanDaR" target="_blank" rel="noopener">ExPanDaR&lt;/a> de &lt;strong>Joachim Gassen&lt;/strong> y el proyecto &lt;strong>TRR 266 Accounting for Transparency&lt;/strong>, y sus cimientos siguen profundamente inspirados en ese trabajo. Con el tiempo, expdpy ha crecido mucho más allá del original — estimadores al estilo fixest, herramientas de estudio de eventos / diferencias en diferencias, modelos de panel de efectos aleatorios y aleatorios correlacionados, análisis de convergencia y una capa pedagógica integrada que interpreta y explica los resultados — y seguirá evolucionando.&lt;/p>
&lt;p>Agradecemos a los autores de ExPanDaR. Por favor, cite el trabajo original al usar &lt;code>expdpy&lt;/code> en investigaciones (consulte &lt;a href="https://github.com/cmg777/expdpy/blob/main/CITATION.cff" target="_blank" rel="noopener">&lt;code>CITATION.cff&lt;/code>&lt;/a>).&lt;/p></description></item></channel></rss>