Вы находитесь на странице: 1из 2

Семинар.

Регрессионный анализ

На семинаре работаем с данными продаж онлайн магазина, данные представляют собой


scanner data, описание данных по ссылке http://archive.ics.uci.edu/ml/datasets/online+retail#.

Перед началом работы с данными нужно:

 Установить следующие пакеты в R:


install.packages(c("readxl", "dplyr")
 Установить свою рабочую директорию, в которой будут храниться рабочие файлы
setwd("D:/!BasicDisk/TEMP/MAD")
 Загрузить данные и сохранить в указанную ранее рабочую директорию
o либо с флешки преподаватели
o либо по ссылке http://archive.ics.uci.edu/ml/datasets/online+retail#

Часть 1. Преобразования данных

1. Сконструировать дамми-переменную, по которой выборка будет бить на 2 части


(до Декабря 2011)
library(lubridate)
##split sample into 2 parts: before December 2011 and after
retail$dummy <- ifelse(month(retail$InvoiceDate)==12 &
year(retail$InvoiceDate)==2011, 1, 0)
2. Создать переменную «Customer Value» в декабре 2011 для клиентов, которые
совершали покупки в декабре (Подсказка: dplyr)
a. Сколько таких клиентов?
3. Создать переменную «Customer Value» за весь остальной промежуток времени
(декабрь не включая)
a. Сколько таких клиентов?
4. Рассчитать несколько метрик поведения потребителя на всем промежутке до
декабря (декабрь не включая):
a. Например, recency или duration
b. Обосновать выбор переменной
5. «Склеить таблицы» (когда в данных разное количество строк, обязательно должна
быть колонка с одинаковым именем)
RetAll<-merge(RetBefore, RetAfter ,all.x=TRUE)
#change NA in Customer value to 0
RetAll $var[is.na(RetAll $var)] <- 0

Часть 2. Линейная модель

1. Построим модель: как траты клиента в декабре зависят от его метрик в прошлые
периоды? Построить 2-3 модели (отличающиеся факторами):
model2<-lm(Y~X1+X2+X3, data=RetAll)
summary(model2)
a. Найти значимые коэффициенты и их проинтерпретировать
b. Проинтерпретировать показатели качества моделей
c. Выбрать «лучшую» модель
2. Построить гистограмму распределения трат клиента в декабре.
3. Применить технологию бутстрап к лучшей (из пункта 1) модели с 1000
повторений:
install.packages("simpleboot")
library(simpleboot)
model<-lm(Y~X1+X2+X3, data=RetAll)
boot <- lm.boot(model, R = 1000)

a. Выдернуть 1000 расчетных значений каждого коэффициента


#создаем переменную куда сохраняем результаты
Coef<-matrix(0, ncol = 3, nrow = 1000)
#выдергиваем эти результаты
for (i in 1:1000)
{Coef[i,]<-boot$boot.list[i][[1]]$coef
}
b. Нарисовать гистограмму 1000 значений каждого коэффициента
hist(Coef[,1]
c. Рассчитать значимость коэффициента – p-value
#функция для расчета p-value, его не изменять
p_value<-function(data){
p1<-sum(data>0)/length(data)
p2<-sum(data<0)/length(data)
p<-min(p1,p2)*2
return(p)
}
#обращение к функции – обращаемся уже с учетом ваших переменных
p_value(Coef[,3])