{"id":9597,"date":"2020-12-21T14:51:38","date_gmt":"2020-12-21T13:51:38","guid":{"rendered":"https:\/\/www.makingscience.com\/blog\/como-es-posible-medir-de-forma-justa-estadisticamente-el-impacto-de-tus-campanas\/"},"modified":"2020-12-21T14:51:38","modified_gmt":"2020-12-21T13:51:38","slug":"como-es-posible-medir-de-forma-justa-estadisticamente-el-impacto-de-tus-campanas","status":"publish","type":"post","link":"https:\/\/www.makingscience.com\/es\/blog\/como-es-posible-medir-de-forma-justa-estadisticamente-el-impacto-de-tus-campanas\/","title":{"rendered":"\u00bfC\u00f3mo es posible medir de forma justa (estad\u00edsticamente) el impacto de tus campa\u00f1as?"},"content":{"rendered":"<div>\u00bfC\u00f3mo es posible medir de forma justa (estad\u00edsticamente) el impacto de tus campa\u00f1as?<\/div>\n<div>Supongamos que llevas a cabo una campa\u00f1a de marketing. Seguro que deseas saber c\u00f3mo la campa\u00f1a ha ayudado a aumentar el tr\u00e1fico de tu sitio web, los registros o las conversiones.  Suena simple, porque podr\u00edas comparar las medidas antes y despu\u00e9s de la campa\u00f1a, o comparar las medidas de dos grupos realizando un test A\/B. Pero en realidad, es dif\u00edcil medir ese impacto en el mundo real, debido a que <strong>existen muchas variables que pueden influir en el resultado.<\/strong>  Google tuvo el mismo problema, as\u00ed que <a href=\"https:\/\/kaybrodersen.github.io\/\" target=\"_blank\" rel=\"noopener\">Kay Brodersen<\/a> y el equipo de Google construyeron el <strong>algoritmo<\/strong> <a href=\"https:\/\/google.github.io\/CausalImpact\/CausalImpact.html\" target=\"_blank\" rel=\"noopener\">Causal Impact<\/a> para abordar este desaf\u00edo.  La idea principal del algoritmo es construir una serie temporal basada en m\u00faltiples grupos de control y utilizar esta serie para proyectar c\u00f3mo evolucionar\u00eda la serie temporal donde se ha realizado la campa\u00f1a, en caso de no haberla realizado. Analicemos este algoritmo mediante un ejemplo.  Supongamos que en nuestra p\u00e1gina web en Espa\u00f1a tenemos una evoluci\u00f3n de visitantes \u00fanicos de la siguiente manera: <img fetchpriority=\"high\" decoding=\"async\" class=\"size-full wp-image-3922 aligncenter\" src=\"https:\/\/www.makingscience.com\/wp-content\/uploads\/2021\/04\/Captura-de-pantalla-2020-12-21-a-las-15.06.19.png\" alt=\"\" width=\"736\" height=\"368\" \/>  El punto <em>fucsia<\/em> representa el n\u00famero de visitantes \u00fanicos el d\u00eda que, por ejemplo, arranc\u00f3 una campa\u00f1a de marketing determinada, a la cual nos referiremos a ella como <strong>evento de impacto.<\/strong>  Supongamos que tenemos nuestra misma web en otros pa\u00edses como Italia y Portugal (grupos de control), donde el evento de impacto no ha ocurrido: <img decoding=\"async\" class=\"size-full wp-image-3923 aligncenter\" src=\"https:\/\/www.makingscience.com\/wp-content\/uploads\/2021\/04\/Captura-de-pantalla-2020-12-21-a-las-15.07.53.png\" alt=\"\" width=\"736\" height=\"368\" \/>  Con el <strong>algoritmo de Causal Impact<\/strong> podr\u00edamos crear un modelo basado en los datos de visitantes \u00fanicos de estos pa\u00edses para proyectar los valores esperados en el mismo per\u00edodo de tiempo en Espa\u00f1a. Actuando como serie base e indicando el n\u00famero de visitantes \u00fanicos que hubi\u00e9ramos esperado en Espa\u00f1a, en caso de que no se hubiese realizado la campa\u00f1a. Se muestra como la l\u00ednea morada a continuaci\u00f3n: <img decoding=\"async\" class=\"size-full wp-image-3924 aligncenter\" src=\"https:\/\/www.makingscience.com\/wp-content\/uploads\/2021\/04\/Captura-de-pantalla-2020-12-21-a-las-15.08.49.png\" alt=\"\" width=\"736\" height=\"360\" \/>  Una vez que obtenemos esta serie base, podemos calcular las diferencias entre las dos series de tiempo, los valores reales de Espa\u00f1a y los valores estimados si no se hubiese producido el evento de impacto. Y as\u00ed, considerar la diferencia como el impacto real del evento, tal y como se representa a trav\u00e9s de la l\u00ednea morada en la siguiente figura: <img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-3925 aligncenter\" src=\"https:\/\/www.makingscience.com\/wp-content\/uploads\/2021\/04\/Captura-de-pantalla-2020-12-21-a-las-15.09.47.png\" alt=\"\" width=\"736\" height=\"360\" \/>  O por otra parte, acumular la serie para poder ver el impacto total hasta cualquier fecha dada. La l\u00ednea <em>fucsia<\/em> a continuaci\u00f3n representa esto: <img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-3926 aligncenter\" src=\"https:\/\/www.makingscience.com\/wp-content\/uploads\/2021\/04\/Captura-de-pantalla-2020-12-21-a-las-15.10.32.png\" alt=\"\" width=\"736\" height=\"360\" \/>  De esta manera, podemos medir el ROI (retorno de la inversi\u00f3n) de dicha campa\u00f1a de una forma mucho m\u00e1s justa, incluso cuando no estamos seguros de si el evento fue la \u00fanica fuente de impacto. El algoritmo de Causal Impact ayuda a obtener esta informaci\u00f3n r\u00e1pidamente para poder ajustar cualquier acci\u00f3n de manera oportuna con confianza. <\/p>\n<h2>El algoritmo Causal Impact<\/h2>\n<p> La idea principal del algoritmo es construir una <strong>serie temporal<\/strong> <strong>bayesiana<\/strong> basada en m\u00faltiples grupos de control (en el ejemplo anterior, Italia y Portugal), y ajustar las diferencias de tama\u00f1o entre los <strong>grupos de control<\/strong> y el <strong>grupo de test<\/strong> (Espa\u00f1a) para obtener una serie base sint\u00e9tica.  Los grupos de control son aquellos en los que no tuvimos el evento de impacto. Por lo que no se esperan ver cambios en la serie producidos por dicho evento.  El grupo de test es aquel donde se produjo el evento de impacto, y esperamos que este haya producido alg\u00fan cambio en la serie temporal. <\/p>\n<h3>\u00bfQu\u00e9 es la serie base sint\u00e9tica?<\/h3>\n<p> B\u00e1sicamente, se trata de una serie de valores que hubi\u00e9ramos esperado en el grupo de test sin el evento de impacto. A diferencia de otros algoritmos basados en series de tiempo, donde las predicciones se hacen con los valores pasados del grupo de test, este algoritmo construye el modelo a trav\u00e9s de los grupos de control para un tiempo posterior al evento de impacto.  Esto significa que los grupos de control, o la combinaci\u00f3n entre ellos, deben tener correlaci\u00f3n con el grupo de test para que el algoritmo realice predicciones de confianza. <\/p>\n<h3>\u00bfC\u00f3mo elegir grupos de control correlacionados?<\/h3>\n<p> El algoritmo Causal Impact selecciona de forma autom\u00e1tica el grupo o grupos de control m\u00e1s correlacionados mediante la t\u00e9cnica Bayesiana de selecci\u00f3n de variables <a href=\"https:\/\/people.ischool.berkeley.edu\/~hal\/Papers\/2013\/pred-present-with-bsts.pdf\" target=\"_blank\" rel=\"noopener\">spike-and-slab.<\/a>  Pero la t\u00e9cnica que propuso Kim Larsen complementa el algoritmo de Causal Impact para obtener los grupos m\u00e1s correlacionados. Esta t\u00e9cnicas es conocida como<a href=\"https:\/\/towardsdatascience.com\/an-illustrative-introduction-to-dynamic-time-warping-36aa98513b98\" target=\"_blank\" rel=\"noopener\"> Dynamic time warping<\/a><em><strong> (DTW).<\/strong><\/em> <\/p>\n<h3>DTW<\/h3>\n<p> Obtener la correlaci\u00f3n sin m\u00e1s, entre dos series de tiempo, ignora un fen\u00f3meno que se produce habitualmente en las series, que es el desplazamiento temporal:  <img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-3927 aligncenter\" src=\"https:\/\/www.makingscience.com\/wp-content\/uploads\/2021\/04\/Captura-de-pantalla-2020-12-21-a-las-15.18.21.png\" alt=\"\" width=\"736\" height=\"360\" \/>  Las dos series anteriores no tienen las modas posicionadas en el mismo momento, pero con solo observarlas se puede ver que hay una alta \u201ccorrelaci\u00f3n\u201d entre ellas. Los m\u00e1ximos y m\u00ednimos de la l\u00ednea morada vienen un poco m\u00e1s tarde que los de la l\u00ednea fucsia. Por lo tanto, calcular las distancias uno a uno seg\u00fan el eje temporal ignorar\u00eda el desplazamiento y podr\u00eda etiquetar estas dos series como diferentes en lugar de similares.  La t\u00e9cnica DTW permite hacer un mapeo <em>one-to-many<\/em>, calculando las distancias de una serie de tiempo con respecto a otra, teniendo en cuenta los posibles desplazamientos temporales que podr\u00eda haber entre ambas <strong>(correlaci\u00f3n cruzada)<\/strong>. Tal y como se muestra en la siguiente figura:  <img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-3928 aligncenter\" src=\"https:\/\/www.makingscience.com\/wp-content\/uploads\/2021\/04\/Captura-de-pantalla-2020-12-21-a-las-15.19.16.png\" alt=\"\" width=\"736\" height=\"360\" \/>  Al emplear este algoritmo podemos calcular la distancia entre estas dos l\u00edneas aunque exista desplazamiento temporal, y por lo tanto podemos considerar que estas son m\u00e1s similares o \u201ccorrelacionadas\u201d de lo que podr\u00edan haber sido sin \u00e9l.  Otros casos que corrige DTW es determinar que existe correlaci\u00f3n entre dos series aunque una est\u00e9 contra\u00edda o dilatada con respecto a la otra.  B\u00e1sicamente podemos usar el algoritmo DTW para encontrar los grupos de control m\u00e1s similares al grupo de test y pasarlos al algoritmo de Causal Impact como predictores, \u00a1y luego dejar que el algoritmo haga su trabajo!<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfC\u00f3mo es posible medir de forma justa (estad\u00edsticamente) el impacto de tus campa\u00f1as? Supongamos que llevas a cabo una campa\u00f1a de marketing. Seguro que deseas saber c\u00f3mo la campa\u00f1a ha ayudado a aumentar el tr\u00e1fico de tu sitio web, los registros o las conversiones. Suena simple, porque podr\u00edas comparar las medidas antes y despu\u00e9s de [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":9605,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[871,910],"tags":[],"class_list":["post-9597","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-martech-adtech-es","category-technology-ai-es"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/posts\/9597","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/comments?post=9597"}],"version-history":[{"count":0,"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/posts\/9597\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/media\/9605"}],"wp:attachment":[{"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/media?parent=9597"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/categories?post=9597"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/tags?post=9597"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}