Пакет описательная статистика данных
- Проверка данных на NA в R — это логический элемент, который обозначает отсутствующее значение. В случае обнаружения можно или удалить или заменить их на средние значения.
- Анализ данных на выбросы. В случае и обнаружения будет создан вектор в которых не будет сильно отклонившихся величин.
- Расчет описательной статистики
- Расчет доверительного интервала
- Проверка на нормальное распределение
statall = function(Data, CI){
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# Полная описательная статистика данных
# library(DescTools)
# library(nortest)
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# 1.Проверка данных на NA отсутствующие значения.
# В случае обнаружения можно или удалить или заменить их на средние значения.
# 2.Анализ данных на выбросы.
# В случае и обнаружения будет создан вектор
# в которых не будет сильно отклонившихся величин.
# проверим вектор на NA (подсчитаем сколько всего NA)
# 3.Расчет описательной статистики
# 4.Расчет доверительного интервала
# 5.Проверка на нормальное распределение
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
library(DescTools)
library(nortest)
# 1.Проверка данных на NA
nna = length(x[is.na(x)]) # вывод количество NA
# создадим новый вектор без NA:
x = Xclr = (x[!is.na(x)])
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# 2.Анализ данных на выбросы.
boxplot(Xclr)
readline(prompt="Нажмите [enter] для продолжения")
Xclr <<- Xclr[!Xclr %in% boxplot.stats(Xclr)$out]
boxplot(Xclr)
OUT = length(x)-length(Xclr)
cat('всего удалено NA:', nna,'\n')
cat('всего удалено выбросов:',OUT,'\n')
cat('------------------------------------------------------------\n')
readline(prompt="Нажмите [enter] для продолжения")
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# 3.Расчет описательной статистики
m = mean(Xclr)
med = median(Xclr)
n = length(Xclr)
s = sd(Xclr)
skew = sum((Xclr - m)^3/s^3)/n
kurt = sum((Xclr - m)^4/s^4)/n - 3
minx = min(Xclr)
maxx = max(Xclr)
print(c(N = n, mean = m, median = med, SD = s,
As = skew, Ex = kurt, min = minx, max = maxx,
Vx = s*100/m))
cat('------------------------------------------------------------\n')
cat('Расчет доверительного интервала для среднего значения \n')
cat('с доверительным интервалом:',CI,'%','\n')
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# 4.Расчет доверительного интервала для среднего значения
#library(DescTools)
#options(scipen = 999, digits = 5)
mCi = MeanCI(Xclr, conf.level = CI/100)
print(mCi)
cat('------------------------------------------------------------\n')
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# 5.Проверка на нормальное распределение
# Функция автопроверки данных на нормальное распределение
# размер выборки должен быть между 3 и 5000
cat('Проверка на нормальное распределение \n')
Tnorm = function(Xclr){
x = Xclr
par(mfrow = c(1, 2))
qqnorm(x, main='QQ test')
qqline(x)
k = round((1 + 3.32*log(length(x))), 0)
hist(x,breaks = k, main = 'Гистограмма')
par(mfrow = c(1, 1))
st = shapiro.test(x)
p = st$p.value
if (p > 0.05) {
cat('тест Шапиро-Уилка \n')
cat('указывает на нормальное распределение данных \n')
}else {
cat('тест Шапиро-Уилка \n')
cat('данные не распределены нормально \n')
}
return(st)
}
Tnorm(Xclr)
# Load the nortest package for the Anderson-Darling test
library(nortest)
# Perform Anderson-Darling test
cat('------------------------------------------------------------\n')
ad = ad.test(Xclr)
p1 = ad$p.value
if (p1 > 0.05) {
cat(' тест Андерсона-Дарлинга \n')
cat('указывает на нормальное распределение данных \n')
}else {
cat(' тест Андерсона-Дарлинга \n')
cat('данные не распределены нормально \n')
}
cat('------------------------------------------------------------\n')
readline(prompt="Нажмите [enter] для продолжения")
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# 4. Histogram
# Histogram
hh=hist(Xclr, plot = FALSE)
XG = rnorm(1000000, mean = m, sd = s)# Генер совок
hg = hist(XG, plot = FALSE)
hist(Xclr, freq = FALSE, ylim = c(0, max(hg$density, hh$density)))
lines(density(Xclr), lwd = 2, col = 'black')
lines(density(XG), lwd = 2, col = 'red') # Генер совок
lines(density(x), lwd = 3, col = 'blue', lty = 2) # с выбросами
grid(nx = NA, ny = NULL, lty = 2, col = "black", lwd = 1)
}
|