Суббота, 04.04.2026, 22:43Приветствуем вас Гость | RSS
Решение задач в среде R
Главная | Файлы | Регистрация | Вход
» Меню сайта

» R практикум

» R кодинг

» Rmatem

» Опрос
Сколько вам лет?
Всего ответов: 9

» Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Statall
[ Скачать с сервера (1.7 Kb) ] 05.01.2025, 13:22

Пакет описательная статистика данных

  1. Проверка данных на NA в R — это логический элемент, который обозначает отсутствующее значение. В случае обнаружения можно или удалить или заменить их на средние значения.
  2. Анализ данных на выбросы. В случае и обнаружения будет создан вектор в которых не будет сильно отклонившихся величин.
  3. Расчет описательной статистики
  4. Расчет доверительного интервала
  5. Проверка на нормальное распределение

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)
  
  
}

Категория: Script | Добавил: Крокодил
Просмотров: 42 | Загрузок: 7 | Рейтинг: 0.0/0


Всего комментариев: 0
avatar
» Вход на сайт

» Поиск

» Работа с файлами

» Вся графика

» Гистогра́мма

» Теория вероятности

» Сравнение групп

» Дисперс анализ

» Блог


Copyright MyCorp © 2026
uCoz