Пост о статистической значимости

Что значит статистическая значимость.
«Изменение позволило достичь повышения конверсии на 20% с статистической значимостью 90%». К сожалению, это утверждение вовсе не равнозначно другому, очень похожему: «Шансы повысить конверсию на 20% составляют 90%». Так о чем же речь на самом деле?

90% — это вероятность проявления каких бы то ни было изменений в конверсии. Другими словами, если бы мы проводили десять А/B-тестов, чтобы получить этот результат, и решили бы проводить все десять до бесконечности, то один из них (так как вероятность изменений 90%, то 10% остаётся на неизменный исход), вероятно, закончился бы приближением результата «после теста» к первоначальной конверсии – то есть, без изменений. Из остающихся девяти тестов некоторые могли бы показать рост, составляющий куда меньше 20%. В других результат мог бы превысить эту планку.

Т.е. если говорить про p- value, то это вероятность получить такие же или более выраженные отличия. Чем больше уровень p-value, тем больше шанс, что в последующих тестах мы получим более отличающиеся значения. Вот так, никакой гарантии!

Как тестировать изменения в относительных величинах(конверсии, например)

Любую конверсию можно представить вот так:

Это так называемый биномиальный эксперимент.

Биномиальный эксперимент состоит из n испытаний, каждое из которых может
принимать одно из двух значений: «успех» или «неудача».
Каждое испытание должно быть независимым — исход предыдущего испытания не влияет на результат следующего. Вероятность успеха одинакова для каждого испытания. В примере с монетами каждое испытание — подбрасывание монеты. Успехом мы считаем выпадение решки. Неудачей — выпадение орла.

Можно проверить в калькуляторе http://getdatadriven.com/ab-significance-test Там используется односторонний критерий (one-sided test) t.test в R

Как тестировать изменения AOV

Скопировать ревень для транзакций для двух вариантов:

Вставить в калькулятор http://www.evanmiller.org/ab-testing/t-test.html

 

 

 

Регулярки и ругулярки в JS

Нам нужно отследить с помощью регулярки ссылку https://tver.petrovich.ru/catalog/18410/164371/

Как это сделать обычной регуляркой

/catalog/.+/\d+
/catalog/.+/[0-9]+
/catalog/[0-9]+/[0-9]+
/catalog/\d+/\d+

. точка означает любой символ

+ означает один или более

Т.е. запись .+ ищет любые символы до следующего элемента регулярки.

\d любая цифра

\d+ находит числа – последовательности из 1 или более цифр:

[0-9] последовательность цифр, вообще тоже самое что и \d Вообще так указываются последовательности, например [A-Za-z0-9] ищет все буквы в любом регистре и цифры, а вот так наоборот не ищет [^A-Za-z0-9]

Как это сделать регуляркой в JS

Слеши "/" говорят JavaScript о том, что это регулярное выражение. Они играют здесь ту же роль, что и кавычки для обозначения строк. Т.е. ругулярку нужно писать в /регулярка/ И из это возникает необходимость экранировать /, вот так \/

Вот так ищется нужный url:

if (window.location.href.search(/catalog\/[0-9]+\/[0-9]+/) > 1){…..}

Подробнее

https://learn.javascript.ru/regular-expressions-javascript

http://www.regextester.com/

 

 

 

Как проверять гипотезы на данных

Конспект по докладу:

 

  1. Конечные гипотезы проверяем с помощью статистического критерия. Это математическое правило, формулы и алгоритм их применения.
  2. При использовании статистического критерия смотри на p-value:
  3. Как выбрать статистический критерий?


    Для каждой цели и условий теста есть свой статистический критерий




  4. Вот пример критерия Фишера:

 

 

Новый/вернувшийся пользователь в GA

Новый/вернувшийся пользователь в GA считается по куке. Если в рассматриваемый период GA увидит у чувака новую куку, то он запишит его в новые. Если у пользователя уже есть кука, то он запишит его в вернувшиеся.

Вася, Таня и Петя посещают сайт в течение недели следующим образом:
1. Вася заходит на сайт впервые и делает это 2 раза за всю неделю.
2. Таня заходит на сайт не первый раз и в течение недели делает это дважды.
3. Петя заходит на сайт впервые и делает это один раз за всю неделю.
Тогда пользователей за эту неделю будет 3 (Вася, Таня и Петя), вернувшихся — 2, новых — 2. Число сеансов на сайт при этом — 5.

Вот поэтому сумма вернувшихся и новых не равна метрике пользователи:

Про события натив JS

Событие – это сигнал от браузера о том, что что-то произошло.

Важно:

Событию можно назначить обработчик, то есть функцию, которая сработает, как только событие произошло.

Именно благодаря обработчикам JavaScript-код может реагировать на действия посетителя.

Есть несколько способов назначить событию обработчик. Сейчас мы их рассмотрим, начиная от самого простого.

Есть три способа назначения обработчиков событий:

— Атрибут HTML: onclick=»…».
— Свойство: elem.onclick = function.
— Специальные методы:
1) Современные: elem.addEventListener( событие, handler[, phase]), удаление через removeEventListener.
2) Для старых IE8-: elem.attachEvent( on+событие, handler ), удаление через detachEvent.

Справка про обработчик addEventListner

Еще одна полезная статья

Про куки, Web Storage

Источник

Web Storage — это более новое изобретение, чем куки. У web storage два интерфейса: localStorage and sessionStorage.

Их отличия:

The main difference is that the latter persists for the duration of the browser session (i.e. is flushed when the browser instance is shut down), and the former persists indefinitely.

Куки и GTM

Доставать куки можно с помощью 1st Party Cookie Variable.

Установить куки можно с помощью Custom JavaScript Variable named {{JS – setCookie}}:

function() {
 return function(name, value, ms, path, domain) {
 if (!name || !value) {
 return;
 }
 var d;
 var cpath = path ? '; path=' + path : '';
 var cdomain = domain ? '; domain=' + domain : '';
 var expires = '';
 if (ms) {
 d = new Date();
 d.setTime(d.getTime() + ms);
 expires = '; expires=' + d.toUTCString();
 }
 document.cookie = name + "=" + value + expires + cpath + cdomain;
 }
}

Чтобы использовать переменную в скрипте:

{{JS - setCookie}}('session', 'true', 1800000, '/', 'simoahava.com');

Советы по EE от Simo Ahava

  1. Only the most recent ecommerce object is included in the hit!

2. Важно сохранять одинаковость(согласованность) данных на всех этапах воронки. Т.е. одинаковые названия товаров, одинаковые названия категорий. Это важно потому, что EE построен на хитах.

Enhanced Ecommerce is comprised almost entirely of hit-level interactions. This means that every Enhanced Ecommerce payload sent to Google Analytics is unique, and does not persists its information across subsequent hits.

 

3. Все в EE строится на хитах. Все, кроме  листов. Последний лист на который кликнул пользователь приравнивается к листу с которого пользователь совершил транзакцию.

Product lists and promotions have an attribution mechanism, where the last list or promotion that the user interacted with before a purchase within the same session is the one which gets full credit for the purchase.

Статья

Проверяем новый пользователь или нет с помощью GA и GTM

В чем идея: проверяем есть ли кука ga  у браузера, если есть, то это старый пользователь, если нет, то новый

  1. Создаем переменную:
  2. Создаем кастомный html тег, который будет файриться до UA:

    <script> if (!{{Cookie — _ga}}) { window.dataLayer.push({ ‘event’ : ‘newUser’, ‘ga_newUser’ : ‘true’ }); }</script>

     

Полная статья Симо