Цифры, которые обманывают с разрешения Google
Вы скачиваете CSV из Google Trends. Видите красивый график. Строите модель. Получаете R²=0.89. Публикуете исследование. А потом оказывается, что ваша модель предсказывает не интерес к продукту, а сезонные колебания интернет-трафика в Небраске.
Знакомо? Добро пожаловать в мир нормализованных данных, где корреляция не равна причинности, а красивые графики скрывают фундаментальные проблемы.
Google Trends нормализует данные относительно самого популярного термина в выборке. 100 баллов не означает "100% популярности" - это означает "максимальная популярность в этой конкретной выборке". Измените временной диапазон или список сравнения - и все цифры пересчитаются.
Почему нормализация - это не просто "масштабирование"
Представьте: вы сравниваете поисковые запросы "искусственный интеллект" и "машинное обучение" за 2025 год. Google берет неделю, когда "искусственный интеллект" был максимально популярен, присваивает ей 100 баллов. Все остальные значения рассчитываются относительно этой точки.
Теперь добавьте третий запрос - "нейросети". Внезапно все цифры меняются. Потому что новая максимальная точка - другая. Ваши "объективные" данные только что перестали быть объективными.
Три смертельных греха работы с Google Trends
1 Слепая вера в абсолютные значения
"Вот, смотрите, интерес к криптовалютам вырос с 20 до 80 баллов! Четырехкратный рост!"
Нет. Не четырехкратный. Нельзя сравнивать баллы между разными временными отрезками. Если в январе максимальная популярность была 100, а в декабре - тоже 100, это не значит, что популярность одинаковая. Это значит только то, что в каждом месяце была выбрана своя точка отсчета.
2 Игнорирование базового уровня
Запрос "как испечь пирог" всегда популярнее в выходные. Запрос "грипп симптомы" - зимой. Если вы не учтете сезонность, ваша модель найдет корреляцию между "пирогами" и "продажами лекарств от гриппа". Через выходные и зиму.
Это как история с Amazon, где ИИ научился дискриминировать кандидатов по скрытым паттернам. Только здесь паттерны - в данных, а не в алгоритме.
3 Смешивание разных геолокаций
Данные по США и данные по миру - это разные вселенные. Разный интернет-трафик, разная аудитория, разное поведение. Смешивая их, вы получаете статистический салат, где кинза коррелирует с биткоином.
Как НЕ надо делать (реальные примеры провалов)
Кейс 2024 года: стартап предсказывал продажи зимней одежды по запросам "холодно". Модель работала идеально. До тех пор, пока в Австралии не наступило лето. Оказалось, модель ловила не холод, а сезонные колебания общего поискового трафика.
Кейс 2025 года: исследователи связали рост запросов "депрессия" с падением акций tech-компаний. Красивая корреляция 0.76. Пока не выяснилось, что пики "депрессии" приходились на понедельники, а падения акций - на дни после выходных. Модель предсказывала не экономику, а календарь.
Эти ошибки особенно опасны в 2026 году, когда ИИ начинает "думать" самостоятельно (как в нашем разборе про утилизацию ИИ). Модель находит ложные паттерны и уверенно их экстраполирует.
Правильный пайплайн работы с Google Trends
1 Фиксируйте точку отсчета
Выберите контрольный запрос с стабильной популярностью. Например, "погода" или "новости". Все остальные запросы нормализуйте относительно него, а не относительно максимума в выборке.
# Неправильно:
trends_data = pytrends.interest_over_time(['bitcoin', 'ethereum'])
# Правильно:
# Добавляем контрольный запрос
control_query = 'погода'
trends_data = pytrends.interest_over_time(['bitcoin', 'ethereum', control_query])
# Нормализуем относительно контроля
bitcoin_normalized = trends_data['bitcoin'] / trends_data[control_query]
ethereum_normalized = trends_data['ethereum'] / trends_data[control_query]
2 Удаляйте сезонность до, а не после
Сезонная декомпозиция должна быть первым шагом. Не пытайтесь строить модель на сырых данных, потом "почистить" остатки. Это как история с медицинскими советами Google AI - сначала выдают ерунду, потом пытаются исправить.
from statsmodels.tsa.seasonal import seasonal_decompose
# Декомпозиция перед feature engineering
decomposition = seasonal_decompose(trends_series, model='additive', period=52)
trend_component = decomposition.trend # Тренд без сезонности
seasonal_component = decomposition.seasonal # Сезонность отдельно
residual = decomposition.resid # Остатки для анализа
3 Используйте относительные, а не абсолютные изменения
Не "запрос вырос с 20 до 40 баллов", а "отношение запроса к контрольному выросло на X%". Не "пик популярности в 100 баллов", а "в этот момент запрос был в Y раз популярнее контрольного".
4 Добавляйте контекстуальные фичи
Google Trends в вакууме бесполезен. Нужен контекст:
- Новостные события (количество упоминаний в СМИ)
- Социальные сети (тренды Twitter, активность в темах Reddit)
- Экономические индикаторы (если предсказываете продажи)
- Даже погода (серьезно, это влияет на поисковое поведение)
Проверка на здравомыслие: вопросы, которые нужно задать себе
| Если ваша модель показывает... | Спросите себя... |
|---|---|
| Корреляцию > 0.7 | Не ловим ли мы общий тренд (рост интернета, сезонность)? |
| Резкие скачки предсказаний | Не совпадают ли они с изменениями в алгоритме Google? |
| Идеальную предсказательную силу | Не предсказываем ли мы прошлое будущим (data leakage)? |
| Странные паттерны по дням недели | Не смешиваем ли мы рабочие и выходные дни? |
Особенности 2026 года: что изменилось
Google обновил алгоритмы сбора данных в конце 2025. Теперь:
- Учет голосового поиска вырос до 40% от общего объема
- ИИ-ассистированные запросы (типа "напиши мне") выделены в отдельную категорию
- Появилась поправка на протокол покупок Google AI, который искажал коммерческие запросы
Старые датасеты (до 2025) и новые (после 2025) сравнивать нельзя. Это разные метрики. Как сравнивать яблоки и апельсины, где апельсины еще и искусственные.
Когда Google Trends вообще не стоит использовать
Бывают случаи, когда эти данные принесут больше вреда, чем пользы:
- Нишевые продукты - если поисков меньше 10 в день, данные будут шумными до бесполезности
- Долгосрочные тренды (>5 лет) - меняется поведение пользователей, меняются алгоритмы, меняется сам интернет
- Предсказание black swan событий - пандемии, войны, технологические прорывы не видны в поисковых трендах заранее
- Юридические или медицинские вопросы - здесь даже Google отключил AI Overviews из-за рисков
Альтернативы, которые работают лучше
Google Trends - не единственный источник. Иногда лучше посмотреть на:
- Twitter API v3 (2026) - теперь есть исторические данные за 2 года
- Reddit Data API - активность в сабреддитах часто предсказывает тренды
- GitHub Topics - для технологических трендов
- Собственные лог-файлы - если есть сайт или приложение
Чеклист перед отправкой модели в прод
Пройдите эти пункты, если используете Google Trends в ML:
checklist = {
'normalization_fixed': 'Используется контрольный запрос для нормализации',
'seasonality_removed': 'Сезонность удалена до feature engineering',
'time_period_consistent': 'Не смешиваются данные до и после 2025',
'geo_separated': 'Данные по разным странам не смешаны',
'context_added': 'Есть минимум 2 дополнительных источника данных',
'causality_tested': 'Проверена гипотеза "не просто корреляция"',
'outliers_analyzed': 'Выбросы изучены, а не просто удалены',
'benchmark_exists': 'Есть baseline-модель без Google Trends данных'
}
Самый опасный миф о Google Trends
"Чем больше данных, тем лучше модель".
Неправда. С Google Trends часто бывает наоборот: чем больше временной ряд, тем больше шума, тем больше изменений в методологии сбора, тем хуже модель.
Иногда лучше взять 6 месяцев качественных, очищенных, контекстуализированных данных, чем 10 лет сырых цифр. Особенно если эти 10 лет включают переход с ПК на мобильные, с текста на голос, с поиска на ассистентов.
Помните: Google создавал Trends для журналистов и маркетологов, не для ML-инженеров. Инструмент не виноват, что его используют не по назначению. Но это ваша ответственность - понимать ограничения и работать с ними.
Иначе получится как с data poisoning: вы сами отравите свою модель, просто потому что не прочитали мелкий шрифт.