Книга: Выразительный JavaScript
Итоговый анализ
Итоговый анализ
Чтобы найти все типы событий, представленных в наборе данных, мы обрабатываем каждое вхождение по очереди, и затем создаём цикл по всем событиям вхождения. Мы храним объект phis
, в котором содержатся корреляционные коэффициенты для всех типов событий, которые мы уже нашли. Если мы встречаем новый тип, которого ещё не было в phis
, мы подсчитываем его корреляцию и добавляем её в объект.
function gatherCorrelations(journal) {
var phis = {};
for (var entry = 0; entry < journal.length; entry++) {
var events = journal[entry].events;
for (var i = 0; i < events.length; i++) {
var event = events[i];
if (!(event in phis))
phis[event] = phi(tableFor(event, journal));
}
}
return phis;
}
var correlations = gatherCorrelations(JOURNAL);
console.log(correlations.пицца);
// ? 0.068599434
Смотрим, что получилось:
for (var event in correlations)
console.log(event + ": " + correlations[event]);
// ? морковка: 0.0140970969
// ? упражнения: 0.0685994341
// ? выходной: 0.1371988681
// ? хлеб: -0.0757554019
// ? пудинг: -0.0648203724
// и так далее...
Большинство корреляций лежат близко к нулю. Морковки, хлеб и пудинг, очевидно, не связаны с обращением в белку. Но оно вроде бы более часто происходит на выходных. Давайте отфильтруем результаты, чтобы выводить только корреляции больше 0,1 или меньше -0,1
for (var event in correlations) {
var correlation = correlations[event];
if (correlation > 0.1 || correlation < -0.1)
console.log(event + ": " + correlation);
}
// ? выходной: 0.1371988681
// ? чистил зубы: -0.3805211953
// ? конфета: 0.1296407447
// ? работа: -0.1371988681
// ? спагетти: 0.2425356250
// ? читал: 0.1106828054
// ? арахис: 0.5902679812
Ага! У двух факторов корреляции заметно больше остальных. Арахис сильно влияет на вероятность превращения в белку, тогда как чистка зубов наоборот, препятствует этому.
Интересно. Попробуем вот что:
for (var i = 0; i < JOURNAL.length; i++) {
var entry = JOURNAL[i];
if (hasEvent("арахис", entry) &&
!hasEvent("чистка зубов", entry))
entry.events.push("арахис зубы");
}
console.log(phi(tableFor("арахис зубы", JOURNAL)));
// ? 1
Ошибки быть не может! Феномен случается именно тогда, когда Жак ест арахис и не чистит зубы. Если б он только не был таким неряхой относительно оральной гигиены, он бы вообще не заметил своего несчастья.
Зная это, Жак просто перестаёт есть арахис и обнаруживает, что трансформации прекратились.
У Жака какое-то время всё хорошо. Но через несколько лет он теряет работу, и в конце концов ему приходится наняться в цирк, где он выступает как Удивительный Человек-белка, набирая полный рот арахисового масла перед шоу. Однажды, устав от столь жалкого существования, Жак не обращается обратно в человека, пробирается через дыру в цирковом тенте и исчезает в лесу. Больше его никто не видел.
- 2.5. Разработка технического задания на проведение детального анализа рынка при работе над инновационным проектом. Основ...
- 9.1. Проблема синтаксического анализа
- 2.12.2. Анализ усилительных каскадов в области малых времен
- Глава 5. Разработка и анализ бизнес-планов в системе Project Expert
- 4.4.3.3. План-фактный анализ продаж
- Кросс-категориальный анализ
- Приложение Глава 33. ABC-анализ
- Анализ CIL-кода
- Анализ роста продаж в связи с промоакциями
- Ситуационный анализ
- Решил сделать дефрагментацию дисков, выполнил анализ диска C:. На рисунке увидел, что зеленый сектор разбит на 18 неболь...
- 2.4. АНАЛИЗ ТРЕБОВАНИЙ К СИСТЕМЕ (СИСТЕМНЫЙ АНАЛИЗ) И ФОРМУЛИРОВКА ЦЕЛЕЙ