Язык программирования R обладает широким спектром различный статистических методов. Рассмотрим в первую очередь описательную статистику на примере данных об автомобилях, встроенных в среду R.

attach(mtcars)

summary(mtcars)

Данная команда позволяет основные статистические характеристики, такие как среднюю, медиану, квартили, минимальное и максимальное значения.

Следующая команда позволяет подсчитать количество уникальных значений в рассматриваемом векторе. Подсчитает количество автомобилей в выборке с различным количеством цилиндров.

table(mtcars[,2])

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

cor(mtcars)

Визуализируем полученные взаимосвязи

pairs(mtcars, main = «mtcars data»)

Попробуем визуализировать корреляционную матрицу

library(corrgram)

corrgram(mtcars)

Далее попробуем применить t-тест на неравенство в средних

t.test(mtcars[,1],mtcars[,3])

Теперь рассмотрим плотность распределения расхода бензина в зависимости от количества цилиндров. Для этого мы будем использовать пакет sm

library(sm)

cyl.f <- factor(cyl, levels= c(4,6,8),labels = c(«4 cylinder», «6 cylinder», «8 cylinder»))

sm.density.compare(mpg, cyl, xlab=»Miles Per Gallon»)

colfill<-c(2:(2+length(levels(cyl.f))))
legend(locator(1), levels(cyl.f), fill=colfill)

Таким образом мы создали переменную cyl.f которая является фактором, и построили распределение в зависимости от этого фактора.

Далее рассмотрим построение простейшей линейной регрессии.

model <- lm(mpg~disp,mtcars)

model

summary(model)

anova(model)

model$coefficients

model$residuals

model$fitted.values

model$model

plot(model)

А теперь попробуем построить более сложную модель и сравнить качество двух моделей.

model2 <- lm(mtcars[,1]~mtcars[,3]+mtcars[,2])

anova(model,model2)

Продиагностируем модель на предмет выбросов

library(car)

outlierTest(model)

qqPlot(model, main=»QQ Plot»)

Рассмотрим модель на предмет отсутствия автокорреляции в остатках

durbinWatsonTest(model)

Для прогнозирования результата используя новые входящие данные, используется функция predict

predict(model, data.frame(disp = c(1, 2, 3)))

Самостоятельное задание

Для ранее скаченного файла из из соревнования  House Prices: Advanced Regression Techniques построить простейшую линейную модель, которая бы объясняла цены домов от различных факторов. Попробовать проанализировать построенные модели и выбрать наилучшую из них. На основе лучшей модели  спрогнозировать цены домой из файла test. Результирующие значения загрузить на kaggle (Make a submission).

 

Занятие 2. Базовый уровень статистики

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *