1 votos

¿Cómo puedo comparar el tiempo de carga de la página de diferentes sitios web?

Tengo 31 valores de medición de los tiempos de carga de diferentes sitios web (100) bajo diferentes configuraciones (A,B,C,etc.).

Digamos que el sitio web A tiene una mediana de tiempo de carga de página (PLT) de 2000ms con la configuración A (línea de base) y una mediana de PLT de 1700ms con la configuración B (optimización).

Ahora el sitio web B tiene un PLT medio de 1000ms con la configuración A y un PLT medio de 1050ms con la configuración B.

Quiero comparar el efecto de la optimización con la variante de referencia de forma sólida. Evidentemente, los valores absolutos de las mediciones son diferentes en los distintos sitios web.

En un principio, pensé en calcular simplemente el aumento de velocidad entre la mediana del caso base y la mediana del caso de optimización.

Sin embargo, como los valores de las mediciones pueden estar sujetos a ruido, no estoy seguro de si estoy autorizado a hacerlo, así que ¿qué puedo hacer?

Las diferentes configuraciones forman parte de una optimización del protocolo y se espera que produzcan beneficios en términos de tiempo de ida y vuelta (es decir, 50-100ms). Estamos llevando a cabo estos experimentos en un entorno controlado de laboratorio, pero debido a los tiempos de computación y a la variabilidad del navegador y del servidor web hay ruido entre las ejecuciones, que lamentablemente está en el mismo rango que los rendimientos de nuestra optimización. Las mediciones individuales son independientes unas de otras (es decir, siempre utilizamos un navegador nuevo sin efectos intra-medición). Los efectos que influyen en los tiempos de carga son el diseño de las propias páginas web, que pueden incurrir en el procesamiento.

3 votos

Podrías contarnos más sobre tus datos (por ejemplo, darnos algún ejemplo breve) y proporcionar más información de fondo (qué mides, de qué dependen los tiempos de carga, por qué difieren, cuáles son las configuraciones que mencionas, etc.). Posiblemente podría utilizar aquí un modelo de regresión o de efectos mixtos.

1 votos

¿Sólo le interesa la mejora respecto a la línea de base o también la mejora entre protocolos? En otras palabras, ¿sólo le interesan AB, AC, AD o también BC, BD...?

0 votos

@Sada93 Sólo me interesan las mejoras de base.

1voto

user168388 Puntos 13

Como ha mencionado, el efecto del tiempo de carga dependerá en gran medida del tipo de sitio web. Esto hará que los tiempos de A y B sean pequeños o grandes, pero un problema en general porque ahora no podemos compararlos con los otros sitios web. Por esta razón, no se puede utilizar el tiempo medio o la mediana de las dos características. Lo ideal sería realizar el procesamiento adicional y normalizar mis datos en función de esta métrica. La métrica podría ser el tamaño del sitio web, la cantidad de multimedia. Cualquier factor que influya mucho en el tiempo de carga.

Tras normalizar los datos, la única variable que no se tendrá en cuenta será el ruido. Lo ideal sería obtener una respuesta no binaria a la pregunta "¿Es mejor el protocolo optimizado que el caso base?

He simulado tu problema representando el caso base como una distribución normal.

$$A \sim N(\mu_a,\sigma_a^2)$$

Que la mejora de su protocolo sea representada por $\mu_b$ , $\sigma_b=0$

$$B = A+N(\mu_b,0)$$

Lo que hace,

$$B\sim N(\mu_a+\mu_b,\sigma_a^2)$$

Sin embargo, B está enmascarado por un término de error, que has descrito para que sea comparable a la optimización real.

$$error \sim N(0,\sigma_a^2)$$

$$B_{error} = B+error$$ $$B_{error}\sim N(\mu_a+\mu_b,2\sigma_a)$$

Para medir lo bueno que es tu protocolo B optimizado, estás tratando de medir la probabilidad,

$$Pr(B_{error}<A)$$ $$Pr(B_{error}-A<0)$$

Esta distribución viene dada por,

$$B_{error}-A\sim N(\mu_b,3\sigma_a^2-cov(B_{error},A))$$

He simulado esto en python:

import numpy as np
import seaborn as sns
from scipy.stats import norm

#Every row represents a website
A = np.random.normal(100,5,1000) #Assume this is the baseline
B_optimized = A+np.random.normal(-2,0,1000) #Assume this is the optimized
error = np.random.normal(0,5,1000)
B_optimized_error = B_optimized+error

sns.distplot(A, kde=False, rug=False);
sns.distplot(B_optimized, kde=False, rug=False);

A_mean = np.mean(A)
A_sd = np.std(A)

B_mean = np.mean(B_optimized_error)
B_sd = np.std(B_optimized_error)

import matplotlib.mlab as mlab
x_a = np.linspace(A_mean-3*A_sd,A_mean+3*A_sd,100)
x_b = np.linspace(B_mean-3*B_sd,B_mean+3*B_sd,100)

plt.plot(x_a,mlab.normpdf(x_a, A_mean, A_sd))
plt.plot(x_b,mlab.normpdf(x_b, B_mean, B_sd))

Z_sd = np.sqrt(np.var(A)+np.var(B_optimized_error)-2*np.cov(A,B_optimized_error)[0,1])
z = np.linspace((B_mean-A_mean)-10*Z_sd,(B_mean-A_mean)+10*Z_sd,100)
plt.plot(z,mlab.normpdf(z,B_mean-A_mean,B_sd+A_sd))

Z = B_optimized_error-A
d = norm(loc=np.mean(Z), scale=np.sqrt(np.var(Z)))
d.cdf(0)

Deberías obtener tu respuesta calculando la fdc en 0.

Los resultados de $\mu_a=100sec$ , $\mu_b=2$ $\sigma_a=5$ y una muestra de 10000 es la siguiente, el verde es el protocolo mejorado, el azul es la línea de base,

enter image description here

Esto muestra una mejora de 2 segundos en el nuevo protocolo, con algo de ruido añadido.

enter image description here

Encontramos la probabilidad de $B<A$ para ser $68\%$

Hay muchas suposiciones hechas en este modelo porque es simulado, espero que la precedencia sea clara. El paso más difícil será normalizar los datos.

1 votos

Gracias. Es una respuesta impresionante. Sin embargo, el proceso de carga de la página de los sitios web modernos está lejos de ser sencillo, ya que simplemente hay un montón de variables. Por lo tanto, lamentablemente no es tan fácil como los factores que pueden afectar a los tiempos de carga son bastante impredecibles (hay, por ejemplo, las secuencias de comandos que se ejecutan)

0 votos

En lugar de realizar $n$ observaciones en diferentes sitios web lo que si realiza $n$ observaciones en el mismo sitio web, con los diferentes protocolos. De este modo, se puede normalizar con la media. A continuación, puedes repetir esta operación en diferentes sitios web y comparar los resultados. Sin embargo, este procedimiento requiere mucho tiempo.

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