Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
статан4.docx
Скачиваний:
0
Добавлен:
28.12.2024
Размер:
302.46 Кб
Скачать

Приложение 1 листинг программы

Листинг 1 - код программы

  1. library("XML")

  2. library("plotrix")

  3. library("moments")

  4. library("writexl")

  5. library("dplyr")

  6. library("ggplot2")

  7. library("cowplot")

  8. library("car")

  9. library("lattice")

  10.  

  11. urlVor <- "http://www.pogodaiklimat.ru/history/34123.htm"

  12. tableVor <- readHTMLTable(urlVor, which = 2)

  13. tableVor[tableVor == 999.9] <- NA

  14. tableVor <- na.omit(tableVor)

  15. tableVor <- tableVor %>% mutate_at(c("янв", "фев", "мар", "апр", "май", "июн", "июл", "авг", "сен", "окт", "ноя", "дек", "за год"), as.numeric)

  16. #1

  17. #формируем таблицу со столбцами X и Y, где X- месяц с января по сентябрь (численно с 1 до 9), а Y - средняя температура в этот месяц

  18. x <- c()

  19. y<-c()

  20. for (i in (nrow(tableVor)-9):nrow(tableVor)){

  21. for (j in 1:9){

  22. y<- append(y, tableVor[i, j])

  23. x <- append(x, j)

  24. }

  25.  

  26. }

  27. table <- data.frame(X=x, Y=y)

  28. #table - исходная таблица

  29. #2

  30. #диаграмма разброса без дрожания

  31. dotplot(Y~X, data=table)

  32. #диаграмма разброса с эффектом дрожания

  33. graphDrozh <- ggplot(table) + aes(x=X, y=Y, color=x) + geom_jitter() + theme(legend.position = "none")

  34. graphDrozh

  35. #3

  36. cor.test(x, y)

  37. #корреляция равна 0.8604653, результат оценки значимости при помощи t-теста (Стьюдент):

  38. #p-value < 2.2e-16

  39. #4

  40. model <- lm(Y~X, table)

  41. coefficients(model)

  42. #Получаем коэффициент сдвига: -6.790556, коэффициент наклона: 3.451667, уравнение регрессии -6.790556 + 3.451667x = y

  43. #5

  44. sse <- sum (( fitted (model) - table$Y)^2)

  45. sse

  46. #sse=2506.375

  47. ssr <- sum (( fitted (model) - mean(table$Y))^2)

  48. ssr

  49. #ssr=7148.402

  50. sst <- ssr + sse

  51. sst

  52. #sst=9654.777

  53. model_summ <- summary(model)

  54. mean(model_summ$residuals^2)

  55. #Среднеквадратическая ошибка оценки равна 27.84861

  56. summary(model)$r.squared

  57. #Коэффициент детерминации равен 0.7404005

  58. #6

  59. confint(model, level = 0.90)

  60. #доверительный интервал для коэффициента наклона - (3.089482, 3.813851)

  61.  

  62. #7

  63. #диаграмма разброса из 2го пункта

  64. tableRegr <- data.frame(X = x, Y = (-6.790556 + 3.451667*x))

  65. graphDrozh + geom_line(data = tableRegr, col = "red")

  66.  

  67. #8

  68.  

  69. ggplot(model, aes(x=fitted(model), y=residuals(model)))+

  70. geom_point() + geom_hline(yintercept = 0, linetype = "dashed" )

  71.  

  72. #9

  73. shapiro.test(residuals(model))

  74.  

  75. qqnorm(residuals(model))

  76. qqline(residuals(model))

  77.  

  78. #p-value = 0.00998 => не можем отклонить нулевую гипотезу о нормальности распределения

  79. #исходя из графика квантиль-квантиль можно сделать вывод, что условие о нрмальном распределении остатков нарушется незначительно

  80. #10

  81. car::durbinWatsonTest(model)

  82.  

  83. #p-value = 0 => нет автокорреляции => можно применять МНК

Соседние файлы в предмете Статистический анализ