Мысль, что спутник видит урожай до того, как его соберут, кажется мне простой физикой. Больше зелёных листьев, больше зерна. Я много раз с этим соглашался и ни разу не проверял сам. Другие, конечно, проверяли. Феликс Коган из NOAA, автор индексов Vegetation Health, годами публикует модели урожайности на их основе. Дэвид Джонсон из USDA в 2014 году сравнил зелень и температуру MODIS с урожайностью кукурузы по округам. Мне хотелось меньшего. Сколько спутник добавляет к обычной линии тренда, если ему не разрешено заглядывать в будущее? И как он выглядит рядом с прогнозом, который USDA публикует в тот же момент?
Данные
NOAA STAR Vegetation Health публикует недельный ряд по каждому штату США, усреднённый только по пашне, с 1982 года. В нём есть сглаженный NDVI, то есть зелень. Поверх него построены 3 индекса: VCI для зелёной части, TCI для тепловой и VHI, который смешивает обе. По 2012 год включительно ряд идёт со спутников AVHRR, с 2013-го с VIIRS.
В USDA NASS Quick Stats лежит окончательная урожайность кукурузы по каждому штату и году в бушелях с акра. Там же хранятся прогнозы, которые NASS публиковал по ходу сезона. Августовский прогноз строится по состоянию на 1 августа и выходит около 10 августа, то есть одновременно с моими июльскими спутниковыми данными, поэтому сравнивать надо именно с ним, а не с окончательной цифрой, которая появляется в январе.
Я взял 12 штатов Corn Belt, от Иллинойса и Айовы до обеих Дакот и Канзаса, годы с 1982 по 2021. 2022 года здесь нет, потому что окончательная цифра за него выйдет только в январе. Получилось 480 штато-лет. Скрипты занимают около 130 строк на Python с pandas и numpy.
До всякого счёта я записал, чего жду. Сырая корреляция будет заметной, около 0,4 или больше. Вне выборки спутник обгонит линию тренда на 15–35%. Августовский прогноз NASS всё равно окажется точнее. И почти весь выигрыш даст 2012 год, засушливый, а в обычные годы спутник не добавит почти ничего.
Сырая корреляция это в основном календарь
Если сопоставить июльскую зелень с урожайностью по всем 480 штато-годам, корреляция выходит 0,33. Между годом и урожайностью она 0,71. В 11 штатах из 12 урожайность кукурузы растёт примерно на 2 бушеля с акра в год. Исключение составляет Канзас: всего 0,26 бушеля в год. Любой признак, который дрейфует во времени, получает часть этого роста даром. Добавляет и разница между штатами: Айова зеленее Северной Дакоты и урожай у неё выше, но о плохом июле в Айове это не говорит ничего.
Значит, вопрос надо сузить. Берём тренд урожайности каждого штата. Говорит ли июльская зелень, насколько выше или ниже этой линии окажется год?
Каждый прогноз использует только прошлое. Для года Y тренд и коэффициент подбираются по годам до Y. Потом год Y предсказывается сразу для всех 12 штатов. Признаки это средние за недели с 27 по 30, примерно июль, так что всё это известно до августовского отчёта NASS. Проверочные годы с 2000 по 2021, это 264 штато-года.
Что получилось
Ошибка это RMSE в бушелях с акра на одних и тех же 264 штато-годах.
Один тренд ошибается на 16,4. Простая зелень снижает ошибку до 14,8, то есть на 10%. VHI снижает её до 13,0, то есть на 21%. Он лучше тренда в 19 годах из 22. Бутстрэп по целым годам даёт выигрыш VHI от 13 до 26%, у зелени от 5 до 15%. Августовский прогноз NASS ошибается на 9,5, так что опрос USDA заметно впереди. Но не каждый год: в 7 годах из 22 VHI оказался ближе к итогу, чем NASS.
Разбивка удивила меня больше, чем итог. Зелёный индекс VCI даёт 11%, тепловой TCI даёт 15%. Простой NDVI оказался самым слабым из 4 спутниковых признаков. Свой выигрыш VHI получил только вместе с тепловой частью.
2012
По 12 штатам урожайность 2012 года оказалась в среднем на 36,9 бушеля ниже тренда. VHI предсказал падение на 11,5, примерно треть настоящего. RMSE августовского прогноза NASS по этим 12 штатам была 10,3. В Иллинойсе урожайность вышла 105, тренд говорил 173, VHI 159, а NASS в августе 116.
Потом я посмотрел на Иллинойс по неделям. Тут я допустил ошибку, которая чуть не стала заголовком поста. Первое сравнение показало, что у июля 2012 года зелень 0,492, а у среднего июля с 2000 по 2011 год 0,490. В худший год всё выглядело зелёным как обычно. Результат мне очень понравился. Потом я нарисовал размах прежних лет. Нижняя граница ушла до минус 1. Так NOAA обозначает пропущенную неделю. В Иллинойсе у 2004 года таких недель 8 между маем и сентябрём. Моё базовое среднее учло их как настоящие значения. Основная модель их отбросила. Быстрый скрипт, который я написал для этого графика, нет.
Без пропущенных недель средний июль равен 0,523, а 2012 год 0,492. Значит, он был бледнее, но ненамного. В мае поля опережали медиану до 2 недель, а к концу июня опережение исчезло. Дальше они застыли около 0,49, тогда как обычный год продолжает расти примерно до 0,55. Из 41 июля начиная с 1982 года этот 10-й снизу, а урожайность при этом оказалась примерно на 40% ниже тренда. Июль 1990 года был бледнее, 0,460. Иллинойс в тот год собрал на 2,6 бушеля выше своего тренда, если тренд считать по всем 40 годам. 1996 и 1989 годы тоже были бледнее и закончились около тренда. Бледнее был и 1988-й, но там урожайность оказалась на 47 бушелей ниже тренда.
VHI за те же недели был 25 против обычных 58. Более низкий июльский VHI в Иллинойсе за 40 лет был только в 1988 году, во время другой большой засухи.
Выходит, я ошибся в ожиданиях дважды. В 2012 году зелень улучшила тренд всего на 9%, примерно как в средний год. И общий выигрыш от 2012 года не зависит. Без него VHI всё равно улучшает тренд на 19%.
Чего я не проверял
Маска это вся пашня штата, а не кукурузные поля. В Канзасе и Дакотах большая её часть занята пшеницей и пастбищами. Данные по округам с маской кукурузы, скорее всего, дали бы результат лучше. Этого я не пробовал.
VCI и TCI масштабируются по минимуму и максимуму за длинный ряд лет. VHI строится из них. Какие годы входят в этот ряд, я в документации NOAA не нашёл. Если туда входят годы после предсказываемого, индексы немного знают будущее. У простого NDVI такого масштабирования нет. Он всё равно даёт 10%, но какая часть остального приходится на эту утечку, я не измерял. Сглаживание самого NDVI, вероятно, тоже берёт соседние недели, в том числе несколько после июля.
NOAA сейчас отдаёт переобработанный ряд. Его июльская зелень по 12 штатам в среднем 0,487 с 2003 по 2012 год на AVHRR и 0,490 с 2013 по 2021 на VIIRS. Скачка при смене прибора я не вижу, но значения, которые NOAA отдавал в прежние годы, могли отличаться в деталях.
Окно недель я выбрал до счёта. Другие окна дают от 13% для июня до 21% для конца июля и начала августа, так что результат не держится на выборе окна. Но июль всё же вышел лучшим, на 0,2 пункта впереди конца июля и начала августа. Каждая модель это простая линейная регрессия по одному признаку, без данных о погоде. Дополнительные признаки, наверное, закрыли бы часть отставания от NASS.
Прогноз на 2022 год я не делал, потому что окончательная урожайность, с которой его можно сверить, выйдет только в январе.