В североамериканских озерах водится большая озерная форель. По понятным причинам люди очень заинтересованы в том, чтобы она продолжала водиться и хорошо себя чувствовала, размножалась, плодилась и люди могли ее по-прежнему ловить. Соответственно, нужно понять, от чего зависит пополнение популяции этой озерной форели. Наверное оно должно зависеть от того, насколько жизнеспособна икра этой форели, в частности. И один из показателей, который может косвенным образом нам показывать насколько жизнеспособна икра - это содержание сухого вещества в икринках. Потому, что это запас энергии, который будет доступен молодым малькам. Собственно, это та база с которой они начнут свою жизнь. Давайте попробуем выяснить, отличается ли энергетическая ценность икры большой озерной форели в сентябре и ноябре? Почему это важно? Потому, что это в частности может нам сказать в какой месяц можно ограничивать лов, а в какой месяц нет смысла ограничивать лов. То есть, наверно, в те месяцы, когда особенно богатая энергией икра, нам нужно ограничивать лов, чтобы обеспечить пополнение форели. Давайте разберемся в этом вопросе! Данные, с которыми мы будем работать они находятся в пакете "Stat2data" и называются "FishEggs". Это фактически встроенные данные, если вы поставите себе этот пакет, вы получите к ним доступ. Сначала давайте проведем разведочный анализ, как это мы обычно делаем приступая к анализу любых данных. Давайте проверим все ли правильно открылось! Когда мы смотрим на структуру полученного объекта, вы видите, что это "data.frame" в котором 35 наблюдений и 4 переменных. Эти переменные - это возраст, возраст рыбы, от него естественным образом тоже зависит энергетическая ценность икры. Потому что, наверное, рыбы в определенном возрасте они более эффективно откладывают эти полезные вещества и энергетические запасы в свою икру, в другом возрасте они это делают не так эффективно. То есть это ковариата, которую мы обязательно должны учесть в нашей модели. Вторая переменная "PctDM", совершенно непроизносимое название, но мы ее будем называть просто, доля сухого вещества - это процент сухого вещества в икринках. Третья переменная "Month" - это фактор с двумя уровнями: ноябрь и сентябрь. И в этом факторе закодирован месяц в который вылавливали рыбу. Последняя переменная "Sept" - это то же самое, но записанное немножко по другому, просто в виде чисел. То есть это переменная, где 1 записана только там, если рыба выловлена в сентябре. Сразу смотрим нет ли пропущенных значений и выясняем, что нет, пропущенных значений нет, это очень хорошие аккуратные данные и с ними можно продолжать работать. Но вот для начала, прежде чем бросаться в моделирование нам хорошо бы разобраться, а правильно ли установлен порядок уровней в факторах? Которые мы будем использовать. У нас там есть единственный фактор это месяц и в исходном "data.frame" уровни этого фактора следуют так: сначала ноябрь, потом сентябрь. Как вы знаете, что на самом деле месяцы в году следует вообще-то в другом порядке, то есть хорошо бы нам, чтобы порядок уровней в "data.frame" был другой, более соответствующий хронологически. Нам просто легче будет интерпретировать коэффициенты модели. И мы поменяем порядок уровней при помощи функции "relevel", она принимает фактор исходной из "data.frame". Ей нужно сказать какой уровень фактора должен быть базовым, (то есть должен быть первым). В данном случае нам этого достаточно, потому что у нас всего 2 уровня. Мы просто таким образом меняем их местами и результат складываем обратно в переменную "Month" в "data.frame", "FishEggs". И теперь уровни в нашем "data.frame" в понятном нам порядке, то есть сентябрь - это будет базовый уровень, а ноябрь - это будет не базовый уровень нашего фактора. Давайте убедимся в том, что объемы выборок достаточны, для того чтобы проводить какое-то моделирование. Например, было бы совершенно глупо строить какую-то модель зависимости энергетической ценности икры, от возраста в разные месяцы, если вся рыба выловлена в один какой-то месяц. Поэтому, давайте посмотрим в какие месяцы сколько рыбы было поймано! Выясняется, что примерно одинаковое количество, ну чуть-чуть разное, но в сентябре рыбу тоже ловили. 14 рыб поймали в сентябре. Важно посмотреть насколько равномерно распределены рыбы разного возраста в разные месяцы? Мы видим, что в ноябре (ну у нас выборка там побольше в ноябре оказывается), все возраста охвачены, а в сентябре в некоторых случаях у нас не пойманы рыбы определенного возраста, но так или иначе диапазон у них сходной. То есть с этими данными вполне можно работать, они наверное смогут поддержать модель, которую нам предстоит построить. И последняя вещь, которую нам нужно знать о наших данных обязательно перед моделированием - это то, есть ли какие-то значения выброса? Значения выброса потенциально опасны, потому что они могут в некоторых случаях оказывать влияние на ход регрессии. И поэтому нам лучше заранее представлять о том есть они у нас в данных или нет, есть ли какие-то значения, которые сильно отличаются от всех остальных? Очень хороший способ для диагностики на предмет значений выбросов - это диаграммы Кливленда. Это такие графики, где вдоль одной оси у вас отложены переменные, которые вас интересуют, а вдоль другой оси (нам же нужно каким-то образом это изобразить на плоскости, чтобы наблюдения отличались одно от другого), вдоль другой оси мы отложим что-нибудь, какую-нибудь бессмысленную вещь, например, просто порядковый номер наблюдения в "data.frame". Соответственно, значения, которые сильно отличаются от других, (то есть рыбы которые сильно отличаются по возрасту от других), они будут либо вот в этой части графика, либо вот в этой части графика. И мы видим, что на самом деле таких значений нет. Это то же самое, что мы видели при помощи функции "table", но только более наглядно. Собственно, вторая непрерывная переменная, которая есть у нас в "data frame" это, собственно, значение отклика содержание сухого вещества в икре и вы видите, что тоже здесь нет таких значений, которые сильно отличаются от других. То есть даже вот эти 2 наблюдения, где содержание сухого вещества было довольно низким, они на самом деле, не то чтобы сильно отличаются от всех остальных. То есть мы можем сказать, что в этих данных значений выбросов нет и мы вполне можем приступать к моделированию.