Многие статистические работы требуют опыта работы с крупномасштабными данными. Какие виды статистических и вычислительных навыков понадобятся для работы с большими наборами данных. Например, как насчет построения регрессионных моделей с учетом набора данных с 10 миллионами выборок?
107
Ответы:
Хорошие ответы уже появились. Поэтому я просто поделюсь некоторыми мыслями, основанными на личном опыте: адаптируйте соответствующие к вашей собственной ситуации по мере необходимости.
Для фона и контекста- так что вы можете учитывать любые личные предубеждения, которые могут проникнуть в это сообщение - большая часть моей работы была в том, чтобы помогать людям принимать важные решения на основе относительно небольших наборов данных. Они невелики, потому что сбор данных может быть дорогим (например, 10 тысяч долларов за первый образец скважины для мониторинга подземных вод или несколько тысяч долларов за анализ необычных химических веществ). Я привык получать как можно больше из любых доступных данных, исследовать их до смерти и изобретать новые методы для их анализа в случае необходимости. Однако в последние несколько лет я работал над некоторыми довольно большими базами данных, такими как социально-экономические и инженерные данные, охватывающие весь США на уровне блоков переписи (8,5 млн. Записей,
С очень большими наборами данных меняется весь подход и образ мышления . Сейчас слишком много данных для анализа. Некоторые из непосредственных (и, ретроспективно) очевидных последствий (с упором на регрессионное моделирование) включают
Любой анализ, о котором вы думаете, может занять много времени и вычислений. Вам нужно будет разработать методы подвыборки и работы с частичными наборами данных, чтобы вы могли планировать свой рабочий процесс при вычислениях со всем набором данных. (Сэмплирование может быть сложным, потому что вам нужен репрезентативный поднабор данных, который будет таким же богатым, как и весь набор данных. И не забывайте о перекрестной проверке ваших моделей с выделенными данными.)
Из-за этого вы будете тратить больше времени на документирование того, что вы делаете, и написание сценариев всего (чтобы это можно было повторить).
Как только что заметил @dsimcha, хорошие навыки программирования полезны. На самом деле, вам не нужно много опыта в средах программирования, но вам нужна готовность программировать, способность распознавать, когда программирование поможет (практически на каждом этапе, действительно) и хорошее понимание основных элементов компьютерные науки, такие как проектирование соответствующих структур данных и анализ вычислительной сложности алгоритмов. Это полезно для того, чтобы заранее знать, будет ли код, который вы планируете писать, масштабироваться до полного набора данных.
Некоторые наборы данных являются большими, потому что они имеют много переменных (тысячи или десятки тысяч, все они разные). Будьте готовы потратить много времени, просто подытоживая и понимая данные . Кодовая книга или словарь данных , а также другие формы метаданных , становятся существенными.
Большая часть вашего времени тратится на перемещение данных и их переформатирование. Вам нужны навыки обработки больших баз данных и навыки суммирования и отображения больших объемов данных. ( Малый кратный Туфте выходит на первый план здесь.)
Некоторые из ваших любимых программных инструментов потерпят неудачу. Забудьте электронные таблицы, например. Большая часть программного обеспечения с открытым исходным кодом и академического программного обеспечения просто не справится с обработкой больших наборов данных: обработка будет длиться вечно, или программное обеспечение будет зависать. Ожидайте этого и убедитесь, что у вас есть несколько способов выполнить ваши ключевые задачи.
Практически любой выполняемый вами статистический тест будет настолько мощным, что почти наверняка будет выявлен «значительный» эффект. Вы должны сосредоточиться на статистической важности , такой как размер эффекта, а не на значимости.
Точно так же выбор модели проблематичен, потому что почти любая переменная и любое взаимодействие, которое вы можете рассмотреть, будет выглядеть значительным. Вы должны сосредоточиться больше на значимости переменных, которые вы выбираете для анализа.
Информации будет более чем достаточно для определения соответствующих нелинейных преобразований переменных. Знать, как это сделать.
У вас будет достаточно данных для обнаружения нелинейных связей, изменений в тенденциях, нестационарности, гетероскедастичности и т. Д.
Вы никогда не закончите . Существует так много данных, что вы можете изучать их вечно. Поэтому важно с самого начала установить свои аналитические цели и постоянно помнить о них.
Я закончу коротким анекдотом, который иллюстрирует одну неожиданную разницу между регрессионным моделированием с большим набором данных по сравнению с меньшим. В конце этого проекта с данными переписи разработанная мной модель регрессии должна была быть реализована в вычислительной системе клиента, что означало написание кода SQL в реляционной базе данных. Это обычный шаг, но код, сгенерированный программистами баз данных, включал тысячи строк SQL. Это сделало почти невозможным гарантировать отсутствие ошибок - хотя мы могли обнаруживать ошибки (это дало разные результаты на тестовых данных), их обнаружение было другим вопросом. (Все, что вам нужно, это одна типографская ошибка в коэффициенте ...) Частью решения было написание программы, которая генерировала команды SQL непосредственно из оценок модели, Это гарантировало, что то, что вышло из пакета статистики, было именно тем, что вошло в RDBMS. В качестве бонуса, несколько часов, потраченных на написание этого скрипта, заменили, возможно, несколько недель на кодирование и тестирование SQL. Это небольшая часть того, что значит для статистика иметь возможность сообщать свои результаты.
источник
Ваш вопрос должен дать несколько хороших ответов. Вот некоторые отправные точки.
Способность работать с компромиссами между точностью и требованиями, предъявляемыми к вычислительной мощности.
Средство с методами добычи данных, которые могут быть использованы в качестве инструментов предварительного скрининга перед проведением регрессии. Например, цепочка, корзина или нейронные сети.
Глубокое понимание взаимосвязи между статистической значимостью и практической значимостью. Широкий репертуар методов выбора переменных.
Инстинкт перепутать.
источник
Хорошие навыки программирования являются обязательными. Вы должны быть в состоянии написать эффективный код, который может обрабатывать огромные объемы данных без удушья, и, возможно, иметь возможность распараллелить этот код, чтобы запустить его в разумные сроки.
источник
Я также добавил бы, что крупномасштабные данные также представляют проблему потенциальных «плохих данных». Не только отсутствующие данные, но и ошибки в данных, и непоследовательные определения, вносимые каждым элементом системы, который когда-либо касался данных. Таким образом, в дополнение к статистическим навыкам, вы должны стать опытным специалистом по очистке данных, если кто-то другой не сделает это за вас.
Ральф Винтерс
источник
источник