Skip to content

Latest commit

 

History

History
425 lines (343 loc) · 35.1 KB

File metadata and controls

425 lines (343 loc) · 35.1 KB

Кодбук

Описание полей и — что важнее — правила, по которым эти числа можно и нельзя сравнивать между собой.

Файлы

Файл Что внутри Формат
findings.csv 2404 числовых показателя, одна строка = одна статистика запятая, десятичная точка
findings_ru.csv то же ;, десятичная запятая
sources.csv 185 источников запятая
sources_ru.csv то же ;
coverage.csv матрица «страна × тема» запятая

Кодировка везде UTF-8 с BOM, перевод строки CRLF.


findings.csv — поля

Поле Тип Описание
finding_id строка Уникальный идентификатор, F###. Стабилен между версиями
source_id строка Ссылка на sources.csv, N###
topic код Тематический блок: D1D5, E (см. ниже)
topic_label строка Расшифровка блока по-русски
indicator snake_case Ключевое поле. Машинное имя показателя. Одинаковое имя = сопоставимые величины
country_raw строка Как записано в источнике (по-русски)
country_en строка Английское название
country_iso3 ISO 3166-1 alpha-3 Код страны. Пусто для агрегатов. GBR покрывает три разные сущности — United Kingdom, England, England and Wales: у исторических таблиц дожития охват уже, чем у страны. Группировка по country_iso3 их смешает; чтобы различить, смотрите country_en
geo_scope код national — одна страна · multi — несколько · global — мир · region — объединение (ЕС) · community — не популяционная выборка
year_start год Начало периода сбора данных (не публикации). Пусто у одной строки — F238, детская смертность «до 1800 года»: у неё известна только верхняя граница, и она стоит в year_end
year_end год Конец периода. Для точечного замера совпадает с year_start
n_sample целое Объём выборки. Пусто, если не опубликован
n_note строка Объём выборки словами, если он не число (например, «60000 домохозяйств»)
subgroup строка Подгруппа: все, мужчины, женщины, возрастная категория и т. п.
value_min число Значение или нижняя граница диапазона
value_max число Верхняя граница. Для точечной оценки равно value_min
value_type код point · range · lower_bound · upper_bound
unit код Единица измерения (см. ниже)
question_short строка Краткая формулировка вопроса или показателя
note строка Комментарий, предупреждение о сопоставимости, связь с другими находками
question_type код ЧТО измеряется: ценность, ожидание, готовность, намерение, поведение, статистика
technology_type код К какому средству относится показатель
response_type код Форма ответа: бинарная, порядковая, непрерывная, счёт, индекс
framing код Дополнительное условие в формулировке вопроса
ladder_step 0–4 Ступень «лестницы приверженности», 0 — вне лестницы
ci_low, ci_high число Границы интервала, как их опубликовал источник. Пусто, если интервал не публиковался. Считать их самим по объёму выборки нельзя: это была бы наша оценка, а не оценка автора
sd число Стандартное отклонение. Держится отдельно от границ интервала: пара ci_low/ci_high никогда не содержит отклонение
uncertainty код Чем задана неопределённость: ci95 · ui95 · sd · range · iqr. Пусто — источник её не приводит
is_projection 0/1 Величина относится к будущему или к сценарию, а не к состоявшемуся замеру. Смешивать прогнозы с наблюдениями в одном ряду нельзя
is_derived 0/1 Величина посчитана составителем базы, а не взята из источника дословно
verification код Откуда мы знаем, что число такое. primary — независимо сверено с первичной публикацией · corroborated — сверено с цитируемой публикацией либо подтверждено двумя независимыми пересказами · from_primary — внесено из первичного документа при разборе, отдельной сверки не было · secondary — из пересказа, не сверялось · pending — не проверялось · failed — сверено и не совпало
verified_on дата Когда проведена сверка. Обязательна при primary, corroborated и failed

Про from_primary. Обладать первичным документом и сверить по нему конкретное число — разные вещи. Строка, внесённая при разборе статьи, помечена from_primary, а не primary: первичный текст был на руках, но независимой перепроверки этого значения не было. Смешивать эти состояния значило бы завышать надёжность базы. Если вам нужны только перепроверенные величины: df[df.verification.isin(["primary", "corroborated"])]. | source_name | строка | Организация и название источника | | source_year | год | Год публикации источника | | source_url | URL | Ссылка на первоисточник. Пусто у сводок — причина сказана словами в notes реестра | | source_doi | DOI | Цифровой идентификатор публикации, если он есть | | source_tier | код | T1 · T2 · T3 (см. ниже) | | source_access | код | Что именно у нас на руках: microdata · full · partial · abstract · blocked · secondary · derived | | source_license | код | Условия повторного использования первичных данных. Для длинных рядов продолжительности жизни это не формальность: перепубликовать законно можно Our World in Data и STMF, сырьё Human Mortality Database и IDL — нельзя | | source_peer_review | код | peer_reviewed · preprint · conference · official · grey · media. Препринты и тезисы в базе есть, и подавать их наравне со статьями нельзя |

Тематические блоки (topic)

Код Тема Строк
D1 Желание бессмертия, вера в загробную жизнь, страх смерти 557
D2 Желаемая и ожидаемая продолжительность жизни; возраст начала старости 216
D3 Отношение к технологиям продления жизни и борьбе со старением 332
D4 Демография и статистика населения: ОПЖ, здоровая ОПЖ, долгожители, пределы 630
D5 ЗОЖ, здоровье населения, wellness-экономика 472
E Крионика, цифровое бессмертие, рынки долголетия 120
M Состав выборки: доля мужчин, доля с высшим образованием и подобное. Это метаданные опроса, а не замер отношения — в матрицу покрытия такие строки не входят 77

Единицы (unit)

Код Смысл Строк
pct проценты 1599
years годы 463
scale_score средний балл по шкале 91
count счёт объектов 81
ratio отношение 48
persons человек 48
litres литры 22
years_per_year лет за год 11
pct_change изменение в процентах 8
billion_usd млрд долларов 7
years_per_decade лет за десятилетие 6
rmb юани 6
grams_per_day граммов в сутки 6
trillion_usd трлн долларов 3
usd доллары 2
per100k на 100 тыс. населения 1
million_usd млн долларов 1
index значение индекса 1

Тир источника (source_tier)

Тир Что означает
T1 Репрезентативная выборка или официальная статистика; прямое измерение по теме
T2 Смежная тема, коммерческий опрос или ограниченная методология
T3 Неслучайная выборка, отраслевая аналитика, справочные издания. Не обобщается на население

source_access — что было на руках

Что было на руках, когда величину вносили в базу. То же поле называется access в sources.csv.

Код Смысл Строк
full первоисточник получен полностью 1819
partial получена часть: аннотация, отрывок, отдельные таблицы 361
microdata получены микроданные, величина посчитана из них 172
secondary первоисточника не было, величина взята из пересказа 51
derived производная сводка, собранная в этом проекте 1

Типология вопросов

Каждая строка размечена по четырём признакам. Таблицы ниже пересобираются из самих данных скриптом scripts_build/build_codebook_tables.py, и число строк в них — фактическое. Кода, которого нет в таблице, в наборе нет: скрипт падает, если встречает неописанный.

Разметка сделана по имени показателя, но совпадает не всегда. Замысел был такой: один и тот же indicator получает один код. На деле это выполняется не везде — величина под одним именем может относиться к разному замеру. Расхождения по полям: ladder_step — 16 имён, question_type — 12, response_type — 11, topic — 9, technology_type — 6, framing — 6, unit — 2. Например want_live_forever встречается и со ступенью 1, и со ступенью 0. Поэтому фильтровать по коду разметки, а не по indicator, нельзя: разметка описывает строку, а сопоставимость задаёт indicator.

question_type — что именно измерено

Что за величину несёт строка.

Код Смысл Строк
value Ценность, убеждение, предпочтение. Сюда же самооценка собственного образа жизни: это заявление о себе, а не наблюдённое поведение 1624
behavior Наблюдённое или измеренное поведение, а не рассказ о нём 200
population_stat Статистика населения: величина, не зависящая от мнения опрошенных 200
belief Убеждение о том, как устроен мир: существует ли загробная жизнь, победит ли наука старение 190
willingness Готовность что-то сделать при названных условиях 70
expectation Прогноз о себе: сколько проживу, когда испортится здоровье. Не желание 59
attitude Отношение к предмету — одобрение, приемлемость, оправданность, — без обязательства что-либо делать 52
knowledge Осведомлённость: знает ли опрошенный о предмете вопроса 6
intention Намерение, заявленное как решение, а не как готовность при условии 3

technology_type — к какому средству относится

О каком способе продления жизни идёт речь.

Код Смысл Строк
none Вопрос не о технологии 1888
lifestyle Образ жизни: питание, движение, отказ от вредного 262
cryonics Крионика 90
cloning Клонирование клеток, тканей, органов и тела 57
digital Цифровое бессмертие, перенос сознания 51
medical Медицинское вмешательство или процедура 20
genetic Вмешательство в геном, генная терапия 17
device Устройство или гаджет: носимый датчик, прибор 10
pharmacological Лекарственное средство: рапамицин, метформин, таблетка 6
augmentation Аугментация: имплант, протез, усиление способностей 3

framing — условие в формулировке

Какое условие поставлено в самом вопросе. Формулировка решает многое: см. правило 1 ниже.

Код Смысл Строк
none Условий в формулировке нет 2272
population_wide Величина относится к населению целиком, а не к ответившим на вопрос 100
financial_cost В вопросе названа цена или денежные затраты 13
health_guaranteed Вопрос обещает сохранение здоровья или молодости 6
condition В вопросе стоит иное условие — доступность, безопасность, отсутствие побочных эффектов 4
consent Формулировка про согласие: разрешил бы, допустил бы 3
cognitive_loss Условие о потере памяти или рассудка 2
dissent Формулировка про отказ: запретил бы, не допустил бы 2
no_health_guarantee Вопрос прямо оговаривает, что здоровье не гарантировано 1
burden_to_family Условие о том, что долгая жизнь ляжет бременем на близких 1

response_type — форма ответа

Как устроен ответ опрошенного.

Код Смысл Строк
continuous Измеренная величина, а не выбор из вариантов 993
binary Да или нет 877
ordinal Упорядоченные градации без числовой шкалы 270
categorical Выбор из перечисленных вариантов, больше двух 112
count Счёт объектов 97
likert Согласие по шкале Ликерта: от «полностью согласен» до «полностью не согласен» 28
index Значение составного индекса 21
probability Оценка вероятности события 6

Лестница приверженности (ladder_step)

Центральная конструкция базы, приведённая к операциональному виду: ступени ранжированы по цене обязательства, которую человек берёт на себя.

Ступень Название Что означает Показателей
1 ценность Заявить позицию. Цена — ноль 187
2 готовность Согласиться на конкретное средство гипотетически 44
3 намерение Заявить план действия 3
4 действие Совершить поступок, в том числе необратимый 52
0 вне лестницы Статистика населения и ожидания 156

Почему ожидание вынесено за лестницу

Ожидание («сколько я проживу») — это прогноз о мире, а не обязательство. Человек, ожидающий дожить до 90, ничем не связал себя; человек, подписавший криоконтракт, связал. Ставить их на одну шкалу нельзя.

Это различение имеет практическое следствие. Панели старения — HRS, SHARE, ELSA, CHARLS и объединяющий их Gateway to Global Aging — измеряют субъективную вероятность дожития, то есть ожидание. Это самые крупные и качественные данные, формально близкие к теме базы, и именно поэтому их регулярно принимают за измерение желания жить дольше. Они им не являются.

Как пользоваться ступенями

import pandas as pd
df = pd.read_csv("data/findings.csv")

# вся лестница, только сопоставимые ступени
ladder = df[df.ladder_step > 0]

# сравнить слова и дела внутри одной темы
ladder[ladder.technology_type == "cryonics"].groupby("ladder_step").value_min.describe()

Что показала сама разметка

Разметка задумывалась как удобство, но дала самостоятельный результат.

  1. Ступень «намерение» почти пуста: 9 показателей из 417. Между гипотетической готовностью и совершённым действием лежит слой, который поле почти не измеряет. Это самый крупный методологический пробел базы. Единственный полноценный замер — мета-анализ Rhodes и de Bruijn 2013 (N = 3 899 из 10 исследований): из тех, кто намеревался заниматься физической активностью, 36 % так и не начали, а обратный переход почти отсутствует — среди не намеревавшихся начали лишь 2 %. Разрыв односторонний.

  2. Формулировку почти никто не варьирует. Условие «при сохранении здоровья» встречается в 6 показателях, обратное условие — в 1. При этом именно оговорка о здоровье переворачивает результат: без неё доля желающих долгой жизни резко падает. Поле опирается на различение, которое почти не проверяет экспериментально.

  3. Ценностный слой перевешивает всё остальное вместе взятое: 275 показателей против 133 на ступенях «готовность» и «действие» суммарно. Поле охотнее всего измеряет то, что ничего не стоит респонденту.

  4. «Действие» перевешивает «готовность» по объёму — 75 показателей против 58 — и по прослеживаемости прочнее: T1 стоит у 57 из 75 против 31 из 58. Но почти всё это измеренное поведение в области здорового образа жизни (67 показателей): официальная статистика, когортные наблюдения, мета-анализы. Необратимое действие в собственном смысле — заключённый контракт на крионику — стоит на всю базу за одним показателем, и тот получен опросом сообщества, а не счётчиком провайдера. Самый нижний край лестницы держится на самых слабых данных из всей базы.

    По крионике лестница при этом собирается целиком и показывает обвал на четыре порядка внутри одной темы: слышали о крионике 47 %, готовы в принципе — около 20 %, намерены — 6 %, подписали контракт — 5 % в сообществе LessWrong и порядка 0,00006 % населения Земли по счётчикам провайдеров. Разрыв создаёт не последняя ступень, а переход от готовности к намерению и далее к необратимому шагу.

Правила сопоставимости

Это главный раздел кодбука. Игнорирование этих правил даст формально корректные, но бессмысленные выводы.

1. Сравнивать можно только одинаковый indicator

Строки с одинаковым indicator измеряют одно и то же и сопоставимы между странами и годами. Строки с разным indicatorразные конструкты, даже если звучат похоже.

Пример: want_live_forever (хотят жить вечно) и want_live_to_100 (хотят дожить до 100) — не две оценки одной величины. В США по первому получается 19–33 %, по второму 29–77 %. Это не противоречие в данных, а разные пороги.

2. Известные несопоставимые пары

Пара Почему нельзя сравнивать
zozh_adherence_objective (9,7 %) vs zozh_selfreport_always (53 %) Объективный критерий из пяти условий одновременно vs самоотчёт. Разрыв частично определительный: конъюнкция пяти требований при 60 % прохождения по каждому механически даёт ≈7,8 %
sports_participation Россия (60,3 %) vs insufficient_physical_activity мир (31,3 %) Административная отчётность Минспорта vs стандартизированный критерий ВОЗ (150 мин/нед). Разные определения и источники
longevity_is_good Япония (68,8 %) vs want_live_to_100 Япония (28,2 %) Общая ценность долголетия vs конкретный порог; разные выборки (все взрослые vs возраст 77–81)
want_live_to_100 США 2016 (77 %) vs 2025 (29 %) Разные полстеры и шкалы: прямой бинарный вопрос vs распределение желаемого возраста. Различие инструментальное, не трендовое

3. Диапазоны и границы

Всегда проверяйте value_type:

  • point — точечная оценка, value_min = value_max;
  • range — первоисточник дал диапазон; используйте обе границы, при расчётах берите середину и указывайте неопределённость;
  • lower_bound — известна только нижняя граница (value_max пусто);
  • upper_bound — только верхняя.

4. Доверительные интервалы есть не везде

Поля ci_low, ci_high и sd заполнены только там, где интервал опубликовал сам источник, — это 26 строк из 2 404. В поле uncertainty указано, что именно опубликовано: ci95, ui95, iqr, sd или range. Такие границы переносите вместе со значением и не пересчитывайте: у сложных выборок они учитывают дизайн, а формула по объёму выборки — нет.

Для остальных строк интервала в данных нет. Если он нужен, считайте сами из n_sample: ±1,96·√(p(1−p)/n) — и помните, что для квотных онлайн-панелей это нижняя оценка: реальная ошибка больше расчётной на величину дизайн-эффекта.

5. Дубли с предыдущей фазой проекта

Часть источников пересекается с более ранним корпусом; в sources.csv это отмечено полем overlap_phase1. При количественном синтезе учитывайте такие показатели один раз.

6. Перекос выборки стран

Россия и США дают 56,9 % всех национальных показателей — больше половины, а не «почти половину». Это свойство доступности источников, а не темы. Любое утверждение вида «в мире считают так-то» проверяйте на этот перекос — см. coverage.csv и вкладку «Карта покрытия» витрины.


who_healthspan.csv — жизнь против здоровой жизни

Справочная таблица по 183 странам, выгруженная напрямую из Global Health Observatory ВОЗ. Держится отдельно от findings.csv намеренно: это машинная статистика по всем странам сразу, и если влить её в основной датасет, она задавит собой опросные данные, ради которых база и существует.

Поле Описание
country_iso3 Код страны
country_en Название
year_hale, hale_years Год и значение ожидаемой продолжительности здоровой жизни
year_le, life_expectancy_years Год и значение общей ожидаемой продолжительности жизни
gap_years Разрыв: сколько лет человек живёт в плохом здоровье
gap_share_pct Тот же разрыв как доля всей жизни

Что видно сразу

Медиана разрыва по миру — 9.3 года, размах от 6.5 до 12.5. Но распределение устроено неожиданно: разрыв максимален в богатых странах (Австралия — 12,5 года, США — 12,46) и минимален в бедных (Сомали — 6,5).

Как доля жизни он при этом меняется куда слабее: размах по 183 странам — от 10,9 % до 16,3 %, и у 169 стран из 183 он лежит между 12 и 16 %. Иными словами, богатые страны не сжимают период болезни, а растягивают и жизнь, и болезнь пропорционально. Это независимо подтверждает вывод GBD 2023 о расширении разрыва (см. источник N194 в реестре).

⚠ Оговорка о сопоставимости: ВОЗ даёт для США разрыв 12,5 года, GBD 2023 — 14 лет. Расхождение методологическое, а не ошибка. Смешивать оценки из двух систем в одном ряду нельзя.

sources.csv — поля

Поле Что означает
source_id Номер источника, N###. Номера не переиспользуются
block Тематический блок, к которому источник отнесён при сборе: A — международные опросы, B — Россия, C — демография, D — ЗОЖ и здоровье, E — крионика и цифровое бессмертие. Блок один на источник; показатели из него могут лежать под любой темой topic
type Жанр: academic_article, poll_national, official_stats, database, meta_analysis и прочие
organization_authors Кто провёл: организация или авторы
year Год публикации или диапазон
title Название работы
coverage Охват: страна, число стран, описание выборки
N Объём выборки. У официальной статистики вместо числа — описание охвата
method Как собраны данные
fieldwork Даты полевого этапа
url, doi Адрес первоисточника и DOI, если есть
access Что было на руках при разборе: full, partial, abstract, secondary, microdata, derived, blocked
license Лицензия первичных данных. Пусто у 168 источников из 185 — не выяснена; перепубликация таких данных под вопросом
peer_review peer_reviewed, preprint, official, grey, media, conference
retrieved Дата обращения. Пусто у 178 из 185
overlap_phase1 Пересечение с более ранним корпусом проекта: при количественном синтезе такие показатели учитывают один раз
tier Прослеживаемость T1–T3, см. выше
survey_mode Способ опроса: online, phone, f2f, mixed, cohort, register, device, review
extraction Глубина разбора: full, partial, none
no_data_reason Почему у источника нет показателей: reference, infrastructure, unverified, blocked, covered_elsewhere, pending
notes Свободное примечание

coverage.csv — поля

Поле Описание
country_iso3 Код страны
country_en Название
total Всего показателей по стране
D1E Число показателей в каждом тематическом блоке

Учтены только строки с geo_scope = national. Показатели из межстрановых исследований в матрицу не входят — иначе покрытие выглядело бы полнее, чем оно есть.


Воспроизводимость

Все публикуемые CSV собираются из рабочих файлов проекта скриптом:

python scripts/build_dataset.py

Скрипт нормализует страны в ISO-коды, разбирает диапазоны значений и периоды, подтягивает названия и ссылки источников и пересчитывает матрицу покрытия.