La solicitud

De Daniel Foster, Gerente de producto móvil
Tu objetivo
Solo para las sesiones móviles, asigna a result un dict con "rate" (la tasa de conversión), "low" y "high": el intervalo de confianza del 95% tasa ± 1.96 × √(tasa × (1 − tasa) / n), donde n es el número de sesiones móviles. Calcula con valores sin redondear y luego redondea los tres a 4 decimales.
- Usa el DataFrame
web_sessionspendiente - Guarda un dict en
resultpendiente
Desktop 14,541 sessions, mobile 21,549, tablet 3,910. The bars show the rates, not how sure each one is: that is what the interval adds.
Ver los números
| Device | Conversion rate |
|---|---|
| desktop | 3.9% |
| mobile | 2.4% |
| tablet | 2.8% |
Tu código
Cargando el editor…
Solución de referencia
| session_id | customer_id | started_at | device | source |
|---|---|---|---|---|
| 1 | NaN | 2023-01-01 23:02:24 | mobile | paid |
| 2 | 18 | 2023-01-01 15:07:49 | desktop | paid |
| 3 | NaN | 2023-01-01 16:55:46 | desktop | direct |
| 4 | NaN | 2023-01-01 12:43:28 | mobile | organic |
Mote revisa tu resultado
Presiona Ejecutar. Cada fila que cumple el objetivo se vuelve una luciérnaga en tu linterna.
Lo que recibe Daniel, y por qué
DataFrames
Cargados como DataFrames de pandas, junto con pd y np.
web_sessions40,000 filas · 7 columnas
session_idintegercustomer_idintegerstarted_attimestampdevicevarcharsourcevarcharpages_viewedintegerconvertedboolean
| session_id | customer_id | started_at | device | source | pages_viewed | converted |
|---|---|---|---|---|---|---|
| 1 | NaN | 2023-01-01 23:02:24 | mobile | paid | 1 | false |
| 2 | 18 | 2023-01-01 15:07:49 | desktop | paid | 1 | false |
| 3 | NaN | 2023-01-01 16:55:46 | desktop | direct | 7 | false |
| 4 | NaN | 2023-01-01 12:43:28 | mobile | organic | 3 | false |
| 5 | NaN | 2023-01-01 13:06:21 | mobile | social | 2 | false |
customers2,018 filas · 9 columnas
customer_idintegerfirst_namevarcharlast_namevarcharemailvarcharcityvarcharstatevarcharsignup_datedatesegmentvarcharreferral_sourcevarchar
| customer_id | first_name | last_name | city | state | signup_date | segment | referral_source | |
|---|---|---|---|---|---|---|---|---|
| 1 | Owen | Hudson | owen.hudson@icloud.com | San Francisco | CA | 2022-06-02 | consumer | search |
| 2 | Douglas | Mendoza | dmendoza69@gmail.com | Atlanta | GA | 2022-06-02 | consumer | NaN |
| 3 | Henry | Brooks | hbrooks@lakesidecafe.com | Los Angeles | CA | 2022-06-04 | business | NaN |
| 4 | Brian | Graham | bgraham@bluecedarhomes.com | Seattle | WA | 2022-06-06 | business | |
| 5 | Kyle | Jimenez | kjimenez27@yahoo.com | Indianapolis | IN | 2022-06-07 | consumer | NaN |
products120 filas · 8 columnas
product_idintegernamevarcharcategoryvarcharsubcategoryvarcharunit_pricedecimalunit_costdecimallaunched_ondateis_activeboolean
| product_id | name | category | subcategory | unit_price | unit_cost | launched_on | is_active |
|---|---|---|---|---|---|---|---|
| 101 | Vale Velvet Loveseat | Furniture | Sofas | 1659.00 | NaN | 2023-09-11 | true |
| 102 | Alder Oak Coffee Table | Furniture | Tables | 919.00 | 503.50 | 2024-05-16 | true |
| 103 | Orchard Rattan Dining Chair | Furniture | Chairs | 789.00 | 429.87 | 2023-05-27 | true |
| 104 | Upland Oak Bookcase | Furniture | Storage | 429.00 | 214.70 | 2022-12-20 | true |
| 105 | Avery Leather Bed Frame | Furniture | Beds | 449.00 | 232.70 | 2021-08-31 | true |
orders12,000 filas · 7 columnas
order_idintegercustomer_idintegerorder_datetimestampstatusvarcharchannelvarcharshipping_feedecimalcoupon_codevarchar
| order_id | customer_id | order_date | status | channel | shipping_fee | coupon_code |
|---|---|---|---|---|---|---|
| 1001 | 125 | 2023-01-01 20:51:19 | completed | web | 0.00 | NaN |
| 1002 | 156 | 2023-01-02 07:58:46 | completed | web | 0.00 | NaN |
| 1003 | 22 | 2023-01-02 10:25:27 | completed | marketplace | 4.99 | WELCOME10 |
| 1004 | 48 | 2023-01-02 11:21:51 | completed | marketplace | 4.99 | WELCOME10 |
| 1005 | 82 | 2023-01-02 11:43:36 | completed | web | 0.00 | WELCOME10 |
order_items30,338 filas · 6 columnas
order_item_idintegerorder_idintegerproduct_idintegerquantityintegerunit_pricedecimaldiscount_pctdecimal
| order_item_id | order_id | product_id | quantity | unit_price | discount_pct |
|---|---|---|---|---|---|
| 1 | 1001 | 121 | 9 | 31.99 | 0.00 |
| 2 | 1001 | 154 | 3 | 11.99 | 0.00 |
| 3 | 1002 | 154 | 4 | 11.99 | 0.00 |
| 4 | 1002 | 194 | 1 | 149.00 | 0.00 |
| 5 | 1002 | 193 | 2 | 19.99 | 0.00 |
returns1,673 filas · 5 columnas
return_idintegerorder_item_idintegerreturned_ondatereasonvarcharrefund_amountdecimal
| return_id | order_item_id | returned_on | reason | refund_amount |
|---|---|---|---|---|
| 1 | 14 | 2023-01-10 | damaged | 83.69 |
| 2 | 42 | 2023-01-10 | wrong_item | 19.99 |
| 3 | 105 | 2023-01-14 | wrong_item | 10.99 |
| 4 | 24 | 2023-01-16 | changed_mind | 26.99 |
| 5 | 126 | 2023-01-16 | late | 20.99 |
employees60 filas · 8 columnas
employee_idintegerfirst_namevarcharlast_namevarchardepartmentvarchartitlevarcharmanager_idintegerhire_datedatesalaryinteger
| employee_id | first_name | last_name | department | title | manager_id | hire_date | salary |
|---|---|---|---|---|---|---|---|
| 1 | Catherine | Hale | Executive | Chief Executive Officer | NaN | 2016-03-01 | 285000 |
| 2 | Robert | Kim | Executive | Chief Operating Officer | 1 | 2017-01-09 | 235000 |
| 3 | Megan | Collins | Sales | Head of Sales | 1 | 2018-04-16 | 172000 |
| 4 | Chloe | Gutierrez | Sales | Account Executive | 3 | 2020-01-21 | 72000 |
| 5 | Frank | Bell | Sales | Account Executive | 3 | 2023-05-21 | 73000 |
marketing_spend3,276 filas · 3 columnas
spend_datedatechannelvarcharamountdecimal
| spend_date | channel | amount |
|---|---|---|
| 2023-01-01 | paid | 492.99 |
| 2023-01-01 | 37.38 | |
| 2023-01-01 | social | 200.53 |
| 2023-01-02 | paid | 709.13 |
| 2023-01-02 | 64.13 |
La lección
Una tasa es una estimación
Las 21,549 sesiones móviles son una muestra de todas las visitas móviles que tendrá Harbor & Pine. Si repitieras los mismos tres años, no obtendrías exactamente 2.41% otra vez: unos pocos pedidos caerían de otra manera. Un intervalo de confianza dice qué tan lejos de la tasa verdadera podría estar plausiblemente la estimación, dada la cantidad de datos que tienes.
El error estándar de una tasa
Para una proporción p medida en n visitas independientes, la dispersión de la estimación es su error estándar:
se = math.sqrt(p * (1 - p) / n)
Dos cosas lo hacen pequeño: muchos datos (n está bajo una raíz cuadrada, así que 4 veces más sesiones reducen el error a la mitad) y tasas lejos del 50%. Para móvil, p = 0.0241 y n = 21,549, así que se ≈ 0.00105, aproximadamente una décima de punto porcentual.
El intervalo del 95%
Las estimaciones de una tasa en muestras grandes siguen una curva normal, y el 95% de una curva normal queda a menos de 1.96 errores estándar de su centro. Entonces:
low, high = p - 1.96 * se, p + 1.96 * se # 0.0221, 0.0262
Móvil convierte al 2.41%, IC 95% de 2.21% a 2.62%. Compáralo con tablet: una tasa parecida, 2.81%, pero solo 3,910 sesiones, así que su intervalo es dos veces y media más ancho, de 2.30% a 3.33%. El mismo tipo de número, mucha menos certeza. Las barras del gráfico parecen igual de sólidas; los intervalos muestran que no lo son.
Qué significa el intervalo
La lectura honesta: si repitieras toda la recolección de datos muchas veces y construyeras un intervalo cada vez, el 95% de esos intervalos contendría la tasa verdadera. En la práctica los analistas dicen “los datos son compatibles con una tasa móvil entre 2.2% y 2.6%”, y eso está bien. Lo que no significa es que el 95% de los visitantes móviles conviertan dentro de ese rango, ni que un mes futuro vaya a caer dentro de él. Un solo mes tiene muchas menos sesiones y un intervalo propio más ancho.
Errores comunes
- n equivocada. n es el número de sesiones, no el número de conversiones.
- Muestras diminutas. La aproximación normal necesita suficientes éxitos y fracasos, más o menos al menos 10 de cada uno. Con 3 conversiones en 40 sesiones, usa un intervalo exacto o de Wilson.
- El traslape como prueba. Dos intervalos que se traslapan un poco aún pueden diferir de forma significativa. Para comparar dos tasas, prueba la diferencia directamente (nivel 4).
- Tratar las sesiones como independientes cuando no lo son. Un cliente con diez visitas no son diez lanzamientos de moneda independientes. Por eso las pruebas reales suelen contar usuarios, no sesiones.
¡Linterna encendida!
Practicaste: confidence intervalstandard errorproportionsmargin of error
- Resuelto
- Sin pistas
- Al primer intento
