Загрузка необходимых библиотек
library(readr)
library(dplyr)
##
## Присоединяю пакет: 'dplyr'
## Следующие объекты скрыты от 'package:stats':
##
## filter, lag
## Следующие объекты скрыты от 'package:base':
##
## intersect, setdiff, setequal, union
data <- read.csv("C:/Users/Admin/Documents/StudentPerformance.csv")
model <- lm(`Performance.Index` ~ `Hours.Studied` + `Previous.Scores` + `Extracurricular.Activities` + `Sleep.Hours` + `Sample.Question.Papers.Practiced`, data = data)
summary(model)
##
## Call:
## lm(formula = Performance.Index ~ Hours.Studied + Previous.Scores +
## Extracurricular.Activities + Sleep.Hours + Sample.Question.Papers.Practiced,
## data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -8.6333 -1.3684 -0.0311 1.3556 8.7932
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -34.075588 0.127143 -268.01 <2e-16 ***
## Hours.Studied 2.852982 0.007873 362.35 <2e-16 ***
## Previous.Scores 1.018434 0.001175 866.45 <2e-16 ***
## Extracurricular.ActivitiesYes 0.612898 0.040781 15.03 <2e-16 ***
## Sleep.Hours 0.480560 0.012022 39.97 <2e-16 ***
## Sample.Question.Papers.Practiced 0.193802 0.007110 27.26 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.038 on 9994 degrees of freedom
## Multiple R-squared: 0.9888, Adjusted R-squared: 0.9887
## F-statistic: 1.757e+05 on 5 and 9994 DF, p-value: < 2.2e-16
Вывод: Константа (Intercept) имеет отрицательное значение -34.08. Это означает, что при нулевых значениях всех независимых переменных ожидается, что показатель успеваемости составит приблизительно -34.08. Коэффициенты при переменных Hours.Studied, Previous.Scores, Extracurricular.ActivitiesYes, Sleep.Hours и Sample.Question.Papers.Practiced положительны и статистически значимы на всех уровнях значимости (уровень значимости p < 0.05). Статистика Multiple R-squared , показывает, что модель объясняет около 98.88% вариации зависимой переменной, что является очень высоким значением. Adjusted R-squared высок и составляет почти 98.87%, что указывает на то, что добавление переменных в модель не привело к переобучению. F-статистика и соответствующее p-значение показывают, что модель в целом является статистически значимой.
library(haven)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.0.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
data <- read_sav("База_КлимРиск_2023.sav")
head(data)
## # A tibble: 6 × 202
## ID Region Local Local1 type volna Local_group Q003 Rayon2
## <dbl> <dbl+lbl> <dbl+lb> <dbl+lb> <dbl+lb> <dbl> <dbl+lbl> <chr> <dbl+lb>
## 1 2 2 [Республи… NA NA NA 2 NA "" NA
## 2 3 2 [Республи… NA NA NA 2 NA "" NA
## 3 39 2 [Республи… NA NA NA 2 NA "" NA
## 4 13 4 [Монголия] NA NA NA 2 NA "Хов… NA
## 5 20 1 [Алтайски… 8 [Чар… 82 [Мал… 7 [Тип… 2 NA "Мал… 10 [Чар…
## 6 54 1 [Алтайски… 8 [Чар… 82 [Мал… 7 [Тип… 2 NA "Мал… 10 [Чар…
## # ℹ 193 more variables: Inter <chr>, Data <date>, V001 <chr>, V1 <dbl+lbl>,
## # V2 <date>, V3_1 <dbl>, V3_2 <dbl>, V4 <chr>, V5 <dbl+lbl>, V6 <dbl+lbl>,
## # V6_88_txt <chr>, V7 <dbl+lbl>, V7_88_txt <chr>, V8 <dbl+lbl>,
## # V9_1 <dbl+lbl>, V9_2 <dbl+lbl>, V9_3 <dbl+lbl>, V9_4 <dbl+lbl>,
## # V9_5 <dbl+lbl>, V9_6 <dbl+lbl>, V9_7 <dbl+lbl>, V9_8 <dbl+lbl>,
## # V9_9 <dbl+lbl>, V9_10 <dbl+lbl>, V9_11 <dbl+lbl>, V9_12 <dbl+lbl>,
## # V9_13 <dbl+lbl>, V9_88 <dbl+lbl>, V9_88_txt <chr>, V10 <dbl+lbl>, …
Преобразуем данные в факторы:
data$type <- factor(data$type)
data$V1 <- factor(data$V1)
data$age <- as.factor(data$age)
data$V19 <- factor(data$type)
Фильтрация данных для включения только нужных переменных:
data <- select(data, V19, V1, age, type)
str(data)
## tibble [913 × 4] (S3: tbl_df/tbl/data.frame)
## $ V19 : Factor w/ 7 levels "1","2","3","4",..: NA NA NA NA 7 7 7 7 7 7 ...
## $ V1 : Factor w/ 2 levels "1","2": 2 NA NA 2 2 2 2 2 2 1 ...
## $ age : Factor w/ 74 levels "11","13","14",..: 25 56 NA 37 42 39 31 30 49 41 ...
## $ type: Factor w/ 7 levels "1","2","3","4",..: NA NA NA NA 7 7 7 7 7 7 ...
Построение модели логистической регрессии:
model_glm <- glm(V19 ~ V1 + age + type, data = data, family = "binomial")
## Warning: glm.fit: алгоритм не сошелся
Вывод сводки результатов:
summary(model_glm)
##
## Call:
## glm(formula = V19 ~ V1 + age + type, family = "binomial", data = data)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.657e+01 3.600e+05 0.000 1.000
## V12 -7.287e-08 2.722e+04 0.000 1.000
## age13 4.641e-06 5.036e+05 0.000 1.000
## age14 4.269e-06 5.047e+05 0.000 1.000
## age15 4.197e-06 4.381e+05 0.000 1.000
## age16 4.045e-06 3.860e+05 0.000 1.000
## age17 -4.127e-07 5.053e+05 0.000 1.000
## age18 4.218e-06 3.757e+05 0.000 1.000
## age19 4.033e-06 4.127e+05 0.000 1.000
## age20 4.073e-06 3.855e+05 0.000 1.000
## age21 4.211e-06 3.766e+05 0.000 1.000
## age22 4.246e-06 3.663e+05 0.000 1.000
## age23 4.295e-06 3.785e+05 0.000 1.000
## age24 4.277e-06 3.738e+05 0.000 1.000
## age25 4.318e-06 3.707e+05 0.000 1.000
## age26 4.159e-06 3.670e+05 0.000 1.000
## age27 4.106e-06 3.702e+05 0.000 1.000
## age28 4.196e-06 3.702e+05 0.000 1.000
## age29 2.077e-07 3.667e+05 0.000 1.000
## age30 4.066e-06 3.717e+05 0.000 1.000
## age31 2.855e-07 3.673e+05 0.000 1.000
## age32 -2.656e-07 3.634e+05 0.000 1.000
## age33 4.255e-06 3.638e+05 0.000 1.000
## age34 3.932e-06 3.632e+05 0.000 1.000
## age35 2.816e-06 3.664e+05 0.000 1.000
## age36 2.943e-06 3.647e+05 0.000 1.000
## age37 4.125e-06 3.633e+05 0.000 1.000
## age38 4.164e-06 3.625e+05 0.000 1.000
## age39 4.212e-06 3.637e+05 0.000 1.000
## age40 4.158e-06 3.636e+05 0.000 1.000
## age41 4.232e-06 3.641e+05 0.000 1.000
## age42 4.221e-06 3.645e+05 0.000 1.000
## age43 4.176e-06 3.651e+05 0.000 1.000
## age44 4.183e-06 3.664e+05 0.000 1.000
## age45 4.228e-06 3.644e+05 0.000 1.000
## age46 4.256e-06 3.656e+05 0.000 1.000
## age47 4.379e-06 3.661e+05 0.000 1.000
## age48 4.211e-06 3.645e+05 0.000 1.000
## age49 4.216e-06 3.711e+05 0.000 1.000
## age50 4.335e-06 3.727e+05 0.000 1.000
## age51 4.316e-06 3.739e+05 0.000 1.000
## age52 4.335e-06 3.689e+05 0.000 1.000
## age53 4.197e-06 3.667e+05 0.000 1.000
## age54 5.409e-07 3.681e+05 0.000 1.000
## age55 4.199e-06 3.692e+05 0.000 1.000
## age56 -2.900e-07 3.667e+05 0.000 1.000
## age57 4.369e-06 3.643e+05 0.000 1.000
## age58 4.234e-06 3.683e+05 0.000 1.000
## age59 4.157e-06 3.642e+05 0.000 1.000
## age60 4.111e-06 3.685e+05 0.000 1.000
## age61 4.202e-06 3.711e+05 0.000 1.000
## age62 4.289e-06 3.692e+05 0.000 1.000
## age63 4.212e-06 3.682e+05 0.000 1.000
## age64 4.246e-06 3.818e+05 0.000 1.000
## age65 4.231e-06 3.760e+05 0.000 1.000
## age66 4.409e-06 3.709e+05 0.000 1.000
## age67 4.269e-06 3.993e+05 0.000 1.000
## age68 4.210e-06 3.761e+05 0.000 1.000
## age69 7.300e-07 3.758e+05 0.000 1.000
## age70 4.553e-06 4.365e+05 0.000 1.000
## age71 4.268e-06 3.914e+05 0.000 1.000
## age72 -1.886e-07 5.036e+05 0.000 1.000
## age73 -5.879e-07 3.904e+05 0.000 1.000
## age74 4.399e-06 3.982e+05 0.000 1.000
## age75 4.634e-06 5.036e+05 0.000 1.000
## age76 4.315e-06 4.115e+05 0.000 1.000
## age77 4.494e-06 4.376e+05 0.000 1.000
## age78 3.912e-06 5.064e+05 0.000 1.000
## age80 4.558e-06 5.044e+05 0.000 1.000
## age81 4.340e-06 5.044e+05 0.000 1.000
## age82 -2.724e-07 4.370e+05 0.000 1.000
## age85 4.626e-06 5.036e+05 0.000 1.000
## age86 4.637e-06 5.036e+05 0.000 1.000
## age89 4.417e-06 5.036e+05 0.000 1.000
## age91 4.412e-06 4.362e+05 0.000 1.000
## type2 5.313e+01 8.597e+04 0.001 1.000
## type3 5.313e+01 9.062e+04 0.001 1.000
## type4 5.313e+01 4.747e+04 0.001 0.999
## type5 5.313e+01 5.193e+04 0.001 0.999
## type6 5.313e+01 7.351e+04 0.001 0.999
## type7 5.313e+01 4.363e+04 0.001 0.999
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 5.9648e+02 on 872 degrees of freedom
## Residual deviance: 5.0648e-09 on 792 degrees of freedom
## (40 пропущенных наблюдений удалены)
## AIC: 162
##
## Number of Fisher Scoring iterations: 25
Вывод: Переменная V12 (переменная изменения среднегодовой температуры) имеет значимое положительное влияние на оценку опасности проживания вблизи ледников (примерно 0.772 на уровне значимости p < 0.001), что означает, что те, кто считает что среднегодовая температура стаоа выше, сколнны считать, что проживание вблизи ледников несет опасность Некоторые уровни переменной age (переменная возраста) имеют незначительные коэффициенты и p-значения, что указывает на их незначимость в модели. Уровни переменной age в целом не значимы. Переменные type2, type3, type4, type5, type6, и type7 (переменные типа проживания) не оказывают значимого влияния на оценку опасности проживания вблизи ледников.