Эконометрические оценки. Учебное пособие

Валентин Юльевич Арьков

Каждое новое название грозит заказчику повышением стоимости услуг: статистика, математическая экономика, эконометрика, бизнес-аналитика, наука о данных, машинное обучение… Все перечисленные технологии используют метод наименьших квадратов (классический регрессионный анализ), который мы и будем рассматривать – в самых разных видах. Нас ожидает парная и множественная, линейная и нелинейная регрессия, разное количество входов и выходов модели, учёт качественных и количественных признаков.

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Эконометрические оценки. Учебное пособие предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

3. Вероятность

Приступим к новой теме. В каком-то смысле это будет повторение, потому что многие студенты изучают — в том или ином виде — курс теории вероятностей и математической статистики. Судя по школьным программам, в некоторых школах даже в старших классах затрагивают тему вероятности. Кроме того, данный материал частично обсуждается в курсе «Бизнес-аналитика и статистика».

Рис. Вероятность и бросание монеты

Мы работаем с большим количеством исходных данных, реальных данных. В них всегда есть случайность, а случайность измеряется с помощью ВЕРОЯТНОСТИ.

Разберём классический пример — бросание монетки, см. рис. Мы бросаем монетку. Она может упасть с одной стороной или другой стороной. Это два ИСХОДА (результата) нашего опыта. Другие варианты пока не учитываем (например, монетка закатилась под стол и её не нашли). Стороны монеты обычно называют «орел» и «решка» («решётка»).

Если шансы абсолютно равны, то говорят, что вероятность — одна вторая.

Вероятность — это число от нуля до единицы.

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

Если шансы одинаковы, то единица делится на количество этих вариантов. В нашем случае единичка делится на два варианта. Каждый вариант получает вероятность 0,5. Это традиционное объяснение из теории вероятностей.

Теория объясняет общие законы природы. Там, где есть случайность, можно говорить о вероятности события.

Вероятность обозначается латинской буквой p. Это первая буква английского слова probability. Происходит от латинского слова proba — «пробовать, проверять». Получается, что один раз попробовал что-то сделать — получилось, в другой раз попробовал — не получилось. Когда мы что-то пробуем, появляется случайность, неопределённость, непредсказуемость. И вероятность — это частота события, насколько часто происходит то, что нас интересует.

Русское слово «вероятность» имеет отношению к слову «верить». И это вторая сторона вероятности: насколько мы доверяем какому-то сообщению, утверждению, прогнозу.

Рис. Вероятность: теория и оценка

Теория — это всегда красиво и всегда «точно». Теория вероятности говорит нам: если шансы равны, то вероятность будет ровно 0,5 для орла и ровно 0,5 для решки. Это абсолютно «точное» значение — никаких сомнений. Но с одной оговоркой: если шансы равны, см. рис.

Статистика — это фактические данные. Когда мы переходим к обработке данных, то никогда не видим идеальные числа и идеальные условия. Мы каждый раз видим реальные наборы данных. Например, тысячу раз бросили монетку. Посчитали, сколько раз выпал орёл. Представим, что из десяти тысяч раз почти в половине случаев монетка упала орлом вверх. Делим на общее число бросаний и получаем число, которое будет приближаться вот к теоретическому значению.

Это число называется ОЦЕНКА. Оценки часто обозначают символом «крышечка» или «крышка». Настоящая вероятность и оценка по реальным данным приблизительно соответствуют друг другу, но только ПРИБЛИЗИТЕЛЬНО. Оценку мы можем посчитать: берём реальные данные и считаем. Такие опыты были в истории. В книгах можно найти упоминание о том, как ещё до появления компьютеров математики решили проверить свои теории. Они 10 тысяч раз бросали монетку. Можете представить, какая это работа. Бросать монетку и каждый раз записывать результат на бумаге, а потом вычислить оценку вероятности.

Рис. Эксперименты и оценки

Вот в чём разница между теорией и обработкой данных. Теория говорит нам, как всё должно быть в принципе, при идеальных условиях. На практике мы берём реальные данные и обсчитываем то, что получили. Если у нас были разумные предположение, то результаты будут соответствовать теории.

Когда мы говорим о реальных данных, опыт с монеткой можно провести «физически» — действительно бросать монетку много раз. Есть и другой вариант — использовать программный генератор случайных чисел. В этом случае мы имеем дело с тем, что называется ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ. Это целая технология, но мы с вами затронем эту область только для того, чтобы увидеть, как это происходит. Мы будем моделировать идеальные, красивые данные, на которых можно тренироваться. Потом, на лабораторных работах можно будет взять реальные, настоящие данные. Они уже не такие «красивые». Они могут быть «корявыми», «неправильными», какими угодно. Но они чем-то будут напоминать нашу теорию и наши результаты.

В любом случае, мы можем взять реальные данные или результаты моделирования. То, что мы по ним посчитаем, каждый раз будет называться ОЦЕНКА. Оценка — это очень приблизительное значение, которое может соответствовать настоящему, теоретическому.

Есть разные способы моделирования, генерирования, создания случайных чисел. Пока в качестве инструмента для работы мы обсуждаем табличный редактор — Excel или его аналоги. Первый вариант — генератор случайных чисел в настройке «Анализ данных», см. рис.

Рис. Моделирование с помощью надстройки

Мы просто генерируем столбец чисел и определяем вероятность того, что выпадет орёл. В нашем случае получилось значение 0,522. Мы как бы «бросали монетку» заданное количество раз. Генератор случайных чисел создаёт число от нуля до единицы. Эти числа имеют равномерное распределение, то есть у нас одинаковые шансы (вероятность) появления любого числа от нуля до единицы. Далее мы берём полученное число и используем функцию округления. Как вы знаете, обычно округляют по стандартному правилу. Если число меньше 0,5 — округляем в меньшую сторону и пишем 0. Если число больше 0,5 — округляем в большую сторону и пишем 1. Таким образом, мы половина чисел округляется до нуля, а другая половина чисел округляется до единицы. Если ровно 0,5 — то в большую сторону.

Напомним, что есть как минимум шесть методов округления компьютера. Это обсуждается в курсе «Средства вычислительной техники». Можете жтот материал ещё раз посмотреть. В нашем примере мы используем для округления функцию ROUND / ОКРУГЛ.

Excel — надстройка

Запускаем табличный редактор Excel.

Делаем заголовок — это наши «иксы».

Вызываем надстройку: Данные — Анализ данных. В диалоговом окне выбираем генератор случайных чисел.

Рис. Общий план демонстрации

Задаём число переменных. Имеется ввиду число столбцов. В электронных таблицах каждая переменная — это, прежде всего, столбец. Это же касается и баз данных — там тоже есть таблицы, и данные в таблицах тоже расположены по столбцам. Нас интересует одна колонка случайных чисел. Пускай у нас будет 10 тысяч значений.

В разделе «Распределение» выбираем Uniform / Равномерное.

Диапазон значений от 0 до 1.

Параметр Random seed в русском переводе звучит как «Случайное рассеивание». На самом деле, это НАЧАЛЬНОЕ СОСТОЯНИЕ ГЕНЕРАТОРА. Этот параметр задаётся целым числом. Мы в качестве примера напишем 1234.

Диапазон для вывода результатов — Output range. Мы говорим, что надо выводить случайные числа, начиная с указанной ячейки.

Машина немного подумает и сгенерирует нам заданное количество случайных чисел.

После этого мы их округлим и посчитаем вероятность нашего события.

Событие А заключается в том, что у нас выпала единичка. Мы пишем ROUND, даём ссылку на соседнюю ячейку и говорим: ноль знаков после запятой.

Рис. Моделирование нулей и единиц

Конечно, есть некоторые сомнения по поводу округления числа, равного точно 0,5. Проделаем опыт: напишем 0,5 и округлим.

Сделаем откат и возвращаемся к исходным данным.

Теперь нам предстоит заполнить второй столбец. Берём правый нижний уголок ячейки — это маркер автозаполнения. Дважды щёлкаем по нему — и вся колонка заполняется нулями и единицами. Чтобы это проверить, нажимаем [Ctrl+Down]. Перемещаемся самый низ нашего столбца — в последнюю заполненную ячейку. Мы видим 10001 строку. Это последняя строка. Возвращаемся в начало: [Ctrl+Home].

Теперь подсчитаем вероятность. Я напомню, что это только оценка вероятности. Поскольку наши данные — это нули и единицы, оценка вероятности — это среднее значение по столбцу А. Среднее значение в английском варианте Excel называется AVERAGE, в русском варианте — СРЗНАЧ. Указываем диапазон ячеек: щёлкаем первую ячейку, затем нажимаем комбинацию клавиш [Ctrl+Shift+Down]. Мы отметили все ячейки. Нажимаем клавишу [Enter] или [Ввод].

Вот наш результат — мы получили число, которое очень близко к 0,5. Но это не ровно 0,5. Просто достаточно близко к теоретическому значению.

В чём особенность этого метода? Мы генерируем числа с помощью надстройки. Если мы хотим сгенерировать новый набор данных, нам нужно будет снова вызвать «Анализ данных». Мы вызываем генератор, задаём новое состояние генератора, нажимаем [OK]. Нас предупреждают, что ячейки вообще-то заняты предыдущими числами. Машин подумает и заполнит наши 10 тысяч ячеек. Обратим внимание на новую оценку вероятности.

Такой эксперимент вам предстоит проделать несколько раз — в рамках знакомства с данным материалом.

Подведём итоги. Мы вызвали генератор случайных чисел с помощью надстройки, установили равномерное распределение, округлили и нашли оценку вероятности — как среднее из нулей и единиц. Что это значит применительно к нашей формуле? В числителе находится количество единиц — это число событий, которые нас интересуют. В данном случае сумма единиц — это количество событий, когда выпал орёл. В знаменателе — общее количество событий. В нашем примере это 10000. Так что если у нас нули и единицы и мы считаем среднее из этого количества данных, мы автоматом получаем оценку нашей вероятности. Она называется ЧАСТОТА.

Если оценка вероятности получена по реальным данным, её называют частотой. Конечно, это просто количество — в отличие от физики. В физике частота — это число событий в единицу времени или число оборотов в единицу времени. В физике частоту измеряют в Герцах, а в статистике — в «единицах», в «штуках», в количестве объектов или событий. Так что это частота в разном понимании.

Excel — функция

Есть и другой способ генерирования случайных чисел. Это готовая функция RAND / СЛЧИС. Мы его тоже можем разобрать. Внешне всё будет выглядеть точно так же, как в предыдущем примере: столбец «иксов» и столбец нулей и единиц, затем оценка частоты, то есть вероятность, см. рис.

Рис. Демонстрация генератора-функции

Здесь есть некоторые тонкости.

Чтобы взять содержимое одной ячейки и заполнить диапазон ячеек, можно просто взяться за уголок маркера и протянуть вниз. Но чтобы дотянуть до ячейки под номером 10001, придётся потратить пару минут. А теперь представьте, что нужно скопировать формулу в миллион ячеек. Такое заполнение — надолго. Да ещё можно промахнуться.

Но не всё так плохо. У нас в запасе есть другой приём: мы вводим формулу в одну ячейку, затем указываем в окошке адреса ячейки нужный диапазон А2:А10001. В результате мы выделяем этот диапазон. Затем в верхнем меню выбираем Home — Editing — Fill — Down. Это означает «заполнить вниз от текущей ячейки». Так мы заполняем столбец нужного размера, см. рис.

Рис. Заполнение столбца

Вторую колонку мы заполняем с помощью маркера автозаполнения — как в первом примере.

Рис. План демонстрации

Начнём демонстрацию. Переходим в Excel. Создаём новую страничку. В первой колонке у нас находится «икс». Мы пишем RAND и пустые скобки. Это функция без параметров. Она создает нам одно случайное число. Щёлкаем по ячейке. В окне адреса укажем диапазон адресов от А2 до А10001. Видим, что у нас выделился диапазон. Дальше нужно его заполнить: Home — Editing — Fill — Down. Мы заполнили весь диапазон. Можем проверить [Ctrl+Down]. Переходим в последнюю ячейку А10001, дальше ничего нет.

Нас интересует событие А. Мы пишем ROUND. Обратите внимание, что первый столбец автоматически пересчитывается. Округляем ячейку A2, ставим запятую и ноль. В русском варианте аргументы функции разделяются другим значком (точка с запятой), потому что в русском варианте символ запятой — это десятичный разделитель. Он разделяет целую и дробную части числа. Двойной щелчок по маркеру автозаполнения — получили столбец нулей и единиц.

Находим нашу частоту, то есть оценку вероятности случайного числа 0,5. Вызываем функцию AVERAGE.

Сохраняем файл — нажимаем [CTRL+S] несколько раз. Каждый раз при сохранении файла значения пересчитываются.

Как видим, для того чтобы вызвать генерацию нового набора данных, достаточно внести любые изменения или просто обновить / сохранить таблицу. При этом мы явно не указываем начальное состояние генератора. Просто при каждом новом обращении в функции RAND текущее состояние генератора меняется.

В одних случаях именно это интересно. В других случаях, наоборот, требуется работать с одним набором данных и не изменять его. Это первая разница между генератором в надстройке и генератором-функцией.

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

Надо понимать, что у самого Excel есть ограничение по количеству строк на одном листе электронной таблицы. Их может быть чуть больше 1 миллиона. То есть полтора или два миллиона строк вы уже не сможете создать на одном листе.

Но если вы захотите сгенерировать свой «разрешённый» миллион случайных чисел с помощью надстройки, то может и не получиться. Попробуйте выяснить, до какого предела можно генерировать с помощью надстройки. Это тоже интересный эксперимент.

Итак, вам предстоит повторить показанные опыты двумя способами — как мы с вами разбирали — с помощью надстройки Анализ данных и с помощью функции RAND, см. рис.

Рис. План задания

Вам предстоит сгенерировать 10000 случайных чисел и повторить этот опыт 10 раз. Затем записать ваши оценки вероятности. Можете записать от руки в конспект или приложить копию экрана, чтобы показать, что вы это проделали.

Вот таким образом мы с вами знакомимся с понятием вероятности. Вероятность существует в теории. Мы на неё можем посмотреть через обработку данных, но каждый раз это число будет немножко отличаться. Она будет близкой к настоящему, правильному, теоретическому значению. Но каждый раз она будет отличаться. Это явление природы называется словом ОЦЕНКА. Как видим, оценка тоже содержит себе некоторую случайность, некоторую непредсказуемость, маленькую случайную ошибку. Насколько она маленькая, что с этим делать и как дальше работать? Эти тонкости и будут темой следующего занятия.

В данном занятии мы посмотрели на так называемые псевдослучайные числа — то есть они на самом деле не совсем случайные. Нам только кажется что они случайные. Генерируется последовательность, которая зависит от начального состояния. Мы увидим этот инструмент и в Excel, и в любых других программных генераторах, в том числе, и в питоне. То есть в Python.

Libre Office Calc — надстройка

Проведём ещё один эксперимент. Нам предстоит как сгенерировать случайные числа в электронной таблице Libre Office Calc. Calc — это сокращение от слова «Калькулятор».

Основная идея всё та же — вызвать генератор через надстройку. Немного отличается верхнее меню, но разобраться будет несложно.

Рис. План демонстрации

В верхнем меню выбираем Sheet — Fill Cells — Fill Random Number, см. рис.

Рис. Вызов генератора случайных чисел

Появляется меню настройки генератора случайных чисел, см. рис. Выбираем равномерное распределение: Distribution — Uniform. Значения Minimum / Maximum: от нуля до единицы. Диапазон адресов ячеек Cell rangeА2:А10001. Как видим, здесь у нас имеется дополнительная галочка Enable custom seed, если мы вручную задаём начальное состояние генератора.

Есть дополнительная возможность сразу же и округлять полученные случайные числа — Enable rounding. Но мы просто повторим предыдущие шаги, чтобы увидеть, насколько похожи все электронные таблицы.

Рис. Настройка генератора случайных чисел

Далее мы округляем эти числа и находим среднее значение, см. рис. Функции такие же, как в Excel. Это обеспечивает почти полную совместимость на уровне файлов, включая названия функций.

Рис. Результаты моделирования

Как можно видеть, и в этом примере оценка вероятности приблизительно соответствует точному, теоретическому значению 0,5.

Libre Office Calc — функция

Проведём ещё один эксперимент — по примеру того, что мы проделали в Excel с вызовом функции RAND, см. рис.

Рис. План демонстрации

Вводим функцию RAND в ячейку А2.

Затем вызываем заполнение диапазона нашей формулой: Sheet — Fill Cells — Fill Down, см. рис.

Рис. Заполнение ячеек

Рис. Результаты моделирования

Как видим, мы можем заполнять ячейки почти так же, как мы это проделали в Excel. Названия функций тоже совпадают. Во многом это объясняется тем, что пользователи ожидают совместимость на уровне файлов. А в файлах могут быть не только числа, но и вызовы функций. В нашем примере это функции RAND, ROUND и AVERAGE.

В результате мы тоже получили оценку вероятности около 0,5. И тоже с небольшой погрешностью. И эта случайность тоже заметна при многократном повторении опыта.

Когда мы вызываем генератор через функцию, электронная таблица пересчитывает все значения при любых изменениях, при обновлении таблицы и при сохранении файла. Все оценки будут вокруг теоретического значения 0,5, но все будут немного разными — плюс-минус.

Вам предстоит проделать показанные эксперименты. Повторите этот опыт несколько раз, чтобы убедиться, что оценка вероятности немного меняется. Но в среднем оценка «крутится» вокруг точного значения, см. рис.

Рис. План задания

Jupyter Lab

Следующий эксперимент мы проделаем в питоне. Или в Python — если больше нравятся английские названия.

Здесь мы с вами познакомимся с некоторыми приемами работы в диалоговой среде Anaconda / Jupyter Lab и некоторыми командами Python.

Рис. Программа в Jupyter Lab

В первой строчке мы импортируем библиотеку numpy и назначаем ей псевдоним np — для краткости. Это библиотека для работы с числовыми массивами. В обычном, базовом питоне мы тоже можем создавать различные объекты. Однако, numpy позволяет работать с матрицами, то есть с массивами / таблицами чисел. Это могут быть столбцы, или строки, или таблички чисел. Все они условно называются массивами.

Дальше мы будем обращаться к функциям из этой библиотеки np.

Вторая строка — вызов генератора случайных чисел с равномерным распределением. В аргументах функции rand указываем размеры массива, который хотим получить: 10000 строк и 1 столбец.

Следующим шагом мы округляем эти числа с помощью функции round.

Далее находим среднее значение для всего этого массива чисел. Это делает функция mean. Полученную оценку вероятности выводим на экран.

Здесь надо отметить один любопытный момент. Функции для вычисления среднего значения могут называться MEAN и AVERAGE. Могут быть и другие названия. Причём это происходит в рамках одного пакета программ — если это делали в разное время и разные команды разработчиков. За этим приходится следить. Конечно же, мы всегда можем посмотреть справку под названием help. Там же обычно даются примеры использования команды.

Запускаем нашу программу несколько раз и наблюдаем, что выводится на экран в качестве оценки вероятности.

Google Colab

Мы можем проделать наши опыты с теми же результатами и в облачном сервисе Google Colaboratory, см. рис.

Рис. Программма в Google Colab

Внешне всё очень похоже на Anaconda / Jupyter Lab. Мы получаем практически стопроцентную совместимость с программой, отлаженной на локальном компьютере. Тем не менее, иногда бывает тонкости. Colab работает с самыми последними версиями библиотек. И нам не требуется постоянно их обновлять вручную.

Итак, мы запускаем Colab. Нас спрашивают, хотим ли мы открыть существующий файл или создать новый. Создаем новый блокнот.

Вводим первую команду, нажимаем комбинацию клавиш [Shift+Enter]. Проходит некоторое время на запуск — в правой верхней части экрана выводится сообщение про соединение с виртуальной машиной: Connect.

Обратим внимание, что при вводе функцию сразу появляется всплывающая подсказка.

Когда ячейка выполнилась, слева от этой ячейки блокнота видим комментарий в квадратных скобках — выводится какое-то число. Это порядковый номер выполненной ячейки. Ячейки можно запускать в разном порядке, и это будет отображаться в квадратных скобках.

И ещё один момент: при вычислении среднего значения не уточняется метод расчёта. В описании функции говорится: arithmetic mean, то есть среднее арифметическое. На занятиях по статистике вы можете узнать, что среднее можно считать десятью разными способами. Но средняя арифметическая простая используется чаще всего.

Чтобы вывести полученную оценку на экран мы просто вводим имя переменной.

Запускаем несколько раз: Runtime — Run All.

Для вывода на экран можно также использовать команду print. Это обеспечит побольше знаков после запятой. Здесь можно задать любой формат вывода.

Подведём итоги. Неважно, какими средствами анализа мы пользуемся. Результаты обработки данных каждый раз представляют собой случайные числа. Они будут приближаться к точному, правильному значению. Но оценка содержит внутри себя случайность.

Ваша задача — потренироваться и убедиться в следующем. Оценки — это результат обработки реальных данных. Исходные данные содержат случайность. Поэтому оценки тоже являются случайными числами. Нужно проделать этот опыт на локальном компьютере и в облаке, см. рис.

Рис. План задания

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Эконометрические оценки. Учебное пособие предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Смотрите также

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я