Загрузка данных

url <- "https://raw.githubusercontent.com/underckit/SuicideRates/master/master.csv"
SuicideRates <- read.csv(url)

Корреляция

## corrplot 0.84 loaded

Числовое представление

x <- SuicideRates[c(2, 5, 6, 7, 11)]
y <- SuicideRates[c(2, 5, 6, 7, 11)]
cor(x, y)
##                            year  suicides_no  population suicides.100k.pop
## year                1.000000000 -0.004545958 0.008850170      -0.039036797
## suicides_no        -0.004545958  1.000000000 0.616162268       0.306604451
## population          0.008850170  0.616162268 1.000000000       0.008284973
## suicides.100k.pop  -0.039036797  0.306604451 0.008284973       1.000000000
## gdp_per_capita....  0.339134280  0.061329749 0.081509858       0.001785134
##                    gdp_per_capita....
## year                      0.339134280
## suicides_no               0.061329749
## population                0.081509858
## suicides.100k.pop         0.001785134
## gdp_per_capita....        1.000000000

Графическое представление

## Выбросы данных

library(ggplot2)
ggplot(SuicideRates, aes(suicides_no, factor(year))) + geom_boxplot()

Значения с критическим отклонением считаем ошибочными и удаляем их.

condition1<-SuicideRates[,5]<=160
SuicideRates<-SuicideRates[condition1,]

Наблюдаем изменение на графике.

ggplot(SuicideRates, aes(suicides_no, factor(year))) + geom_boxplot()

##Нормальное распределение В качестве тестируемой характеристики выступит смертность .

####График плотности

ggplot(SuicideRates, aes(x=suicides_no)) + geom_density()

####График QQ график QQ (или график квантиль-квантиль) показывает корреляцию между данным образцом и нормальным распределением. Также наносится контрольная линия под углом 45 градусов.

library(ggpubr)
ggqqplot(SuicideRates$suicides_no)

####Гистограмма

hist(SuicideRates$suicides_no, main = "Histogram of suicides", col = "tomato", freq = FALSE)

curve(dnorm(x, mean = mean(SuicideRates$suicides_no, na.rm = TRUE), 
            sd = sd(SuicideRates$suicides_no, na.rm = TRUE)), 
            col = "blue", lwd = 2, add = TRUE)

####Тест Шапиро-Уилка Так как для теста Шапиро-Уилка массив данных слишком велик, тестироваться будет лишь участок.

z<-SuicideRates[1:5000, 1:12]
shapiro.test(z$suicides_no)
## 
##  Shapiro-Wilk normality test
## 
## data:  z$suicides_no
## W = 0.72432, p-value < 2.2e-16

p-value<0.05 ####Тест Андерсона-Дарлинга

library(nortest)
ad.test(SuicideRates$suicides_no)
## 
##  Anderson-Darling normality test
## 
## data:  SuicideRates$suicides_no
## A = 1955, p-value < 2.2e-16

p-value<0.05 ####Тест Крамера фон Мизеса

cvm.test(SuicideRates$suicides_no)
## Warning in cvm.test(SuicideRates$suicides_no): p-value is smaller than 7.37e-10,
## cannot be computed more accurately
## 
##  Cramer-von Mises normality test
## 
## data:  SuicideRates$suicides_no
## W = 355.62, p-value = 7.37e-10

p-value<0.05 ####Тест Колмогорова-Смирнова в модификации Лиллиефорса

lillie.test(SuicideRates$suicides_no)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  SuicideRates$suicides_no
## D = 0.22729, p-value < 2.2e-16

p-value<0.05 ####Критерий хи-квадрат Пирсона

pearson.test(SuicideRates$suicides_no)
## 
##  Pearson chi-square normality test
## 
## data:  SuicideRates$suicides_no
## P = 115044, p-value < 2.2e-16

p-value<0.05 ####Тест Шапиро-Франсия

sf.test(z$suicides_no)
## 
##  Shapiro-Francia normality test
## 
## data:  z$suicides_no
## W = 0.72453, p-value < 2.2e-16

-value < 0.05

На имеющихся данных на уровне значимости 5% (0.05) есть основания отвергнуть нулевую гипотезу о том, что данные распределены нормально. Показатель смертности не распределён нормально.

##Распределение хи-квадрат

chisq.test(SuicideRates$suicides_no)
## 
##  Chi-squared test for given probabilities
## 
## data:  SuicideRates$suicides_no
## X-squared = 1135407, df = 21607, p-value < 2.2e-16

##Проверка на пропуски

SuicideRates <- any(is.na(SuicideRates))

Пропущенных значений не обнаружено.