3 votos

Dispara una alerta cuando el número de inscripciones en una aplicación desciende. Cómo encontrar la mejor condición para maximizar la precisión?

Estoy escribiendo alertas para monitorear el tasa de conversión de registros para una aplicación. Tasa de conversión de las inscripciones aquí se refiere al porcentaje de usuarios que abren la aplicación y que acaban haciéndose una cuenta. Por lo general, este porcentaje se sitúa entre el 35 y el 45% (es decir, entre el 35 y el 45% de los usuarios que abren la aplicación se hacen una cuenta).

Quiero que se dispare una alerta si se detecta una caída significativa en esta tasa de conversión, como por ejemplo debido a un lanzamiento con errores en el que los nuevos usuarios no pueden registrarse. Tengo lo siguiente:

  • appOpenedCount : Número de usuarios que han abierto la aplicación

  • signupCount : Número de usuarios que han creado una cuenta

  • conversionRate : signupCount / appOpenedCount

  • período : Hasta dónde mirar en el pasado. O qué periodos de tiempo utilizar para la appOpenedCount o signupCount datos. Normalmente, queremos que esto sea en la última hora para que sea urgente.

Entonces, basándome en lo anterior, ¿cómo puedo encontrar la mejor condición para activar una alerta con un mínimo de falsos positivos? Tengo unos meses de datos pasados para el análisis. El sistema comprobará la alerta cada 5 minutos.

Mi estado actual: Si appOpenedCount > 100 y conversionRate < 0.32 (percentil 2) en la última hora, dispara una alerta. Sin embargo, estoy notando un montón de falsos positivos, así que estoy pensando que podríamos hacerlo mejor? ¿Debería utilizar algo como el percentil 0,2 en su lugar? Las condiciones pueden ser muy flexibles. Por ejemplo, puedo utilizar el análisis semana a semana, donde comparo con los datos de la semana pasada, etc.

Aquí hay un gráfico que hice que puede ser útil. Cada punto de datos indica la tasa de conversión y la aplicación abierta en la última hora (a lo largo de un mes). Como puedes ver, con más datos, es más preciso. El recuento de aplicaciones abiertas es más bajo por la noche y más alto durante el mediodía.

enter image description here

1voto

joojaa Puntos 108

Por lo que entiendo, se trata de un distribución binomial con $p \approx 0.4$ siendo el típico (normal) conversionRate el número de pruebas $n = $ appOpenedCount y el número de aciertos $k = $ signupCount .

Sin embargo, falta un dato en su pregunta. Usted dice:

Por lo general, queremos que esto sea en la última hora para que sea urgente.

pero no proporcionan la tasa de apertura de la aplicación (por hora). Si esta tasa es muy baja, por ejemplo, un evento de apertura de la aplicación por mes, no puede dar la alerta dentro de su marco de tiempo especificado, nunca.

Lo que puedes hacer es decidir el número óptimo de eventos de apertura de la aplicación para detectar una caída en la tasa de conversión con cierta potencia predefinida, por ejemplo, $0.9$ . En R múltiples bibliotecas parecen ser capaces de hacer análisis de potencia para la distribución binomial, y esta página explica cómo hacerlo en Excel.

1voto

Shane Oliver Puntos 126

En primer lugar, hay que pensar en lo que se entiende por precisión . ¿Quiere minimizar las falsas alarmas (falsos positivos)? ¿Minimizar el número de gotas que se pierden (falsos negativos)? ¿Una combinación de ambos? Muchos libros de texto ofrecen buenas discusiones al respecto, pero Wikipedia también es un buen lugar para empezar.

Ahora, a la pregunta. Para controlar la tasa de falsos positivos, se puede calcular la cola única Valor p la probabilidad de observar un índice de conversión tan bajo como el de la hora anterior o inferior, bajo el hipótesis nula que no hay nada malo en la aplicación. En su caso, este valor p se puede calcular utilizando un prueba binomial donde la hipótesis nula es que $P(\text{Convert}) = 0.4$ . Es importante que esta prueba tenga en cuenta que el recuento de aperturas de la aplicación fluctúa de hora en hora, y que la tasa de conversión es más variable en los momentos en que menos personas abren la aplicación.

Si configura la alerta para que se dispare cuando $p < .05$ o $\frac{1}{20}$ , y ejecute la prueba cada hora, usted tendrá en promedio un falso positivo cada 20 horas cuando la aplicación funciona bien. Un umbral más bajo (por ejemplo $p < \frac{1}{100}$ ) hará que haya menos falsos positivos (uno cada 100 horas), pero también dificulta la detección de problemas reales.

¿Qué probabilidad hay de detectar los problemas cuando surgen? Como sugieren sus etiquetas, esto se llama poder de la prueba. Esto depende de a) su umbral de valor p (llamado $\alpha$ ), b) cómo baja la tasa de conversión cuando hay problemas, y c) cuántas personas abren la aplicación cada hora.

Esta calculadora te da la potencia para una prueba binomial dados todos estos valores. La captura de pantalla siguiente muestra un cálculo suponiendo que a) disparamos una alerta si $p < .05$ b) la tasa de conversión baja al 30% cuando hay un problema, y c) 200 personas abrieron la aplicación en esa hora.

enter image description here

Por último, siempre se puede reducir tanto las tasas de falsos positivos y falsos negativos simplemente utilizando una ventana más larga. Si comprueba cada dos horas, en lugar de cada hora, manteniendo $\alpha = 0.05$ , tendrá un falso positivo en promedio una vez cada 40 horas (20 pruebas), y como estás incluyendo más datos en cada prueba, la potencia de la prueba (la capacidad de evitar falsos negativos) será mayor.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X