Tuesday, April 12, 2011

Линейная регрессия с примерами на R

Меня давно преследует идея пройтись по ключевым алгоритмам data mining, систематизировать имеющиеся знания и составить некий обзор с примерами. Собственно, этой статьей и ознаменую начало данной серии. Для примеров будет использоваться программная среда R, о которой я уже писал в одном из прошлых постов.

Линейная регрессия

Строго говоря, линейная регрессия не является алгоритмом data mining. Это один из методов пришедших из статистики. В статистике, под регрессией, обычно подразумевают прогнозирование, в той или иной форме. Существует множество различных типов регрессий, но в основе любого из них лежит одна и та же идея: построить модель, связывающую предсказываемое значение с исходными данными (предикторами), минимизируя ошибку.

Линейная регрессия это простейший вариант регрессии. Рассмотрим, для примера, линейную регрессию с одним предиктором и одним предсказываемым значением. Такую регрессию легко нарисовать на графике X-Y. Для этого по оси абсцисс X мы отмечаем значения предиктора, а по оси ординат Y значения предсказываемой величины. Тогда простая линейная регрессия это прямая, проведенная таким образом, чтобы минимизировать расхождение между истинными значениями предсказываемой величины и точками на линии, соответствующими значениям предикторов.
На языке математики, мы можем описать нашу линейную модель в виде уравнения: Y = a+b*X, где X – это предиктор или исходные данные, а Y – это предсказываемая величина. А саму задачу переформулировать в виде: найти коэффициенты a и b минимизирующие величину ошибки.
Когда модель построена, а коэффициенты найдены мы можем использовать полученное уравнение для предсказания неизвестных нам значений.

Пример:

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

Цена Акции = K * Цена барреля нефти + Некая константа

Если мы можем определить константу и коэффициент, то мы можем по цене на нефть предсказывать цену акции. Если возникает отклонение, то можно купить спред и на этом заработать, в теории, естественно.

А теперь практика, возьмем R, и проведем линейную регрессию цен акций компании Роснефть по цене на нефть. Исходные данные можно взять здесь:
data <- read.csv('C:\\ rosn.txt', sep='\t') #читаем данные из файла
fit <- lm(data$ROSN ~ data$BRN ) #строим линейную регрессию
summary(fit) #печатаем результат
Результат:
На рисунке, интересующие нас коэффициенты, обозначены (1). Подставив их в уравнение регрессии, получим выражение: ROSN = 61.405 + 1.944*Brent Помимо значений, собственно, коэффициентов, R показывает нам величины ошибок, или стандартного отклонения, для каждого коэффициента. Но это не все... Например, нам может быть интересно, объясняют ли вообще хоть что-нибудь наши коэффициенты. Чтобы проверить это, мы, выдвигаем нулевую гипотезу, что, к примеру, коэффициент 61.405 является лишь результатом погрешности и его значением можно пренебречь. Для проверки такой гипотезы, используется t-критерий Стьюдента. Здесь R за нас делает всю работу, вычисляя как саму величину t так и степень значимости нашей гипотезы Pr(>|t|). Так, в нашем случае величина (2) 0.0036 означает что мы на 100*(1-0.0036) = 99.64% уверены в том, что свободный член в нашем выражении отличен от нуля. Далее мы можем проверить, насколько точно наша модель описывает данные. Для этого используются коэффициенты R2 (3). Чем ближе величина этих значений к 1, тем лучше. 1 это идеальный результат, означающий, что модель на 100% описывает данные. И, наконец, последнее, что мы можем проверить, это то, насколько предсказываемая величина зависит от предикторов. Для этого выдвигается нулевая гипотеза, что предсказываемая величина вообще не зависит от предикторов. Для этой гипотезы определяется p-значение (4). В нашем случае, оно получилось равным 2.65*10^-8. Т.е. мы можем быть уверенны на 99.99999735%, что предсказываемая величина действительно зависит от предикторов. Обычно, имеет смысл смотреть на этот параметр в первую очередь, ведь он определяет, насколько вообще наша модель адекватна. Да, кстати, график чуть выше, как раз показывает наши данные и результат линейной регрессии.

Что если мои данные не описываются прямой линией?

Линейная регрессия с одним предиктором это простейший вариант регрессии, на практике возможен целый ряд усложнений позволяющих решать гораздо более сложные задачи: 1) добавление нескольких предикторов – дополнительные предикторы могут добавить в модель больше информации и, тем самым, улучшить результаты. Уравнение линейной регрессии, в таком случае может иметь следующий вид: Y = a + b1*X1 + … bn*Xn 2)предварительное преобразование предикторов - Возведение предикторов в степень либо извлечение корней является одним из способов увеличить возможности линейной регрессии. На практике, нередко приходится проводить большое количество различных преобразований с целью выяснить, какое из них даст наилучшую оценку. 3)в уравнение модели могут быть добавлены члены содержащие произведение предикторов 4)часто возникает задача предсказания вероятности возникновения события. Т.е. предсказываемая величина принимает лишь два значения 1 и 0 или да и нет. Для решения такого рода задач применяется логистическая регрессия. К счастью, все эти и множество других дополнений реализованы в R и готовы к использованию. Информацию о том, как ими пользоваться можно почерпнуть набрав
> ?lm
в командном интерфейсе R.

11 comments:

  1. спасибо за статью. Только начинаю работать в R. Подскажите пожалуйста как получить картинку, которая выше? Что задать в plot?

    ReplyDelete
    Replies
    1. Автору за статью спасибо.
      В plot() указываете данные, а в функции abline() полученную модель. Например:
      model <- lm(data$y~data$x)
      plot(data$y~data$x, xlab="x", ylab="y")
      abline(model)

      Delete
    2. Большое спасибо!

      Delete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Благодарю за статью.
    Доходчиво - понятно.
    Есть вопрос, если у меня несколько переменных, мне нужно сделать проверку на мультиколинеарность.
    Как в R это можно провернуть?

    ReplyDelete
  4. Сколько предикторов может быть в простой регрессии?

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete
  6. R Визуализация вложенных сечений для линейной регрессии с категориальными переменными и условиями взаимодействия http://q-answer.ru/questions/r-vizualizaciya-vlozhennyh-secheniy-dlya-lineynoy-regressii--49554.html

    ReplyDelete
  7. Извиняюсь.
    Это только у меня в браузере картинки не отображаются?

    ReplyDelete
  8. Грибок - является одним из наиболее часто встречающихся заболеваний, которым страдает практически 85% населения планеты. Подхватить эту острозаразную болезнь можно практически везде: в бассейне, на пляже, в сауне и любом месте, с высокой проходимостью людского потока. Даже невзирая на то, что сейчас в продаже имеется громадное множество разноплановых фармацевтических мазей и гелей, до появления на рынке лечебного комплекса Варанга достаточно быстро покончить с болезнетворными микроорганизмами, которые влияют не только на эстетический вид ногтей и кожные покровы, но и наносят большой вред тканям, было очень нелегко. Благодаря появлению этого инновационного крема, с уникальным натуральным составом, устранение грибка больше не является проблемой. Не занимает много времени и не требует, как раньше, множества усилий. Вылечить грибок ногтей и стоп можно всего лишь за один месяц применения мази. VarangaOfficial - противогрибковое средство варанга - все, что бы хотели знать об этом препарате. Воспользовавшись услугами нашего ресурса, вы сможете узнать полную информацию об этом лекарственном средстве. Увидеть данные о проведенных клинических исследований, прочитать реальные отзывы пользователей и врачей, использующих крем в своей лечебной практике. Изучить инструкцию по применению, прочесть особенности и методы работы комплекса, осмыслить, в чем заключаются особенности работы крема Варанга, где нужно покупать сертифицированный, оригинальный препарат и, как не нарваться на подделку. Мы очень тщательно проверяем публикуемые данные. Предоставляем нашим пользователям сведения, взятые исключительно из достоверных источников. Если вы нашли признаки грибка или же долго и безрезультатно пытаетесь излечиться от этого неприятного коварного недуга, наш сайт покажет вам быстрый и легкий способ решения проблемы. Присоединяетесь и живите полноценной, здоровой жизнью. Благодаря нам, все ответы на самые волнующие вопросы, теперь собраны в одном месте на удобной в использовании и высоко информационном ресурсе.

    ReplyDelete
  9. Документ специалиста остается по-прежнему чуть ли не самым ценным атрибутом для изучения тогдашней нормальной Купить красныи диплом http://diplomy-market.com/kupit-krasnyj-diplom/ Работы. Работодатели на данном этапе знакомства с вашим профи непременно хотят найти документальное подтверждение квалификации специалиста. В дополнение к рекомендательным письмам из предыдущего места службы, например, только документы в. Современные вузы российской федерации предлагают осуществлять обучение по различным специальностям и быть счастливым и востребованным специалистом в сфере образования. Однако не все может быть начато студентом университета после окончания школы или среднего профессионального вуза. Между возможными трудностями могут всплывать любые факторы которые вы хотите: - Отсутствие финансовой возможности оплачивать учебу; - несформированность профессиональных планов; - отсутствие нужного института или факультета в условиях места жительства; - невозможность совмещать заработок с учебой и некоторые другие. Когда вы попали в подобную ситуацию, то теперь можно легко прибегнуть к услугам любой из компаний, предоставляющих свои услуги по выдаче сертификатов во. Купить сертификат во Если еще десять лет назад сертификат института можно было купить в основном в переходах метро, но при этом уровень качества оказался довольно сомнительным, то сейчас реализация этих задач поставлена в совершенно иной степени. Многие компании, специалисты которых обладают всеми необходимыми знаниями и новейшими технологиями для производства документации, готовы помочь каждому из вас. Важно ориентироваться на профессионалов, которые не полностью обманывают ваши ожидания и способны изготовить действительно отличный документ, который не вызовет вопросов у кадровой службы. Сколько будет стоить сертификат об образовании Стоимость документа о профессиональном образовании в современной организации вполне приемлема и демократична. Если только вы не попытаетесь сравнить сумму, которую вам придется заплатить за то, что для того, чтобы купить "корочку" официальным способом, с той, которую вы заплатите, получив ее здесь все вместе с услугой сотрудникам, вы существенно сэкономите. В то же время пользователь также выигрывает два года, которые не придется тратить много на формальное посещение на уровне образования. Стоимость сертификата зависит от конкретного учебного заведения и профессии. Любители музыки найдут более ценные данные на нашем веб-ресурсе.

    ReplyDelete