к.соц.н., Карен Аванесян
Октябрь 2018
gender <- c("male", "female","male", "female","male", "female","male", "female","male", "female","male", "female","male", "female","male", "female")
age <- c(17,18,19,22,21,23,25,26,21,20,19,18,17, 16,19,20)
df <- data.frame(age, gender)
What is frequency?
#install.packages("DescTools", "descr")
library(DescTools)
library(descr)
Freq(gender)
level freq perc cumfreq cumperc
1 female 8 50.0% 8 50.0%
2 male 8 50.0% 16 100.0%
Другой способ, сразу же автоматически создает бар-плот.
#install.packages("DescTools", "descr")
library(descr)
freq(gender)
Результат…
Другой способ, сразу же автоматически создает бар-плот.
gender
Frequency Percent
female 8 50
male 8 50
Total 16 100
The mean is the average of the numbers: a calculated “central” value of a set of numbers.
LIMITATION:
Disadvantage of the mean: The major disadvantage, which does not always occur, is the fact that a mean can be dramatically affected by outliers in the set. For example, if we find the mean of the set of numbers 1, 2, 3, 4, 5 we get 3. However, when we dramatically alter one number in the set and find the average again, the mean is quite different. For example 1, 2, 3, 4, 20 has a mean of 6.
x <- c(1,2,3,4,80)
mean(x)
[1] 18
Как мы видим, результат показывает высокую чувствительность к выбросам.
Подсчитаем средний возраст в нашей таблице данных.
mean(df$age)
[1] 20.0625
Если же в нашем ряде данных присутствуют пропущенные значения (NAs), то к команде необходимо добавить аргумент, который отвечает за их удаление
y <- c(1,2,0,NA, 4)
mean(y, na.rm = TRUE)
[1] 1.75
The “median” is the “middle” value in the list of numbers.
LIMITATION:
If the gap between some numbers is large, while it is small between other numbers in the data, this can cause the median to be a very inaccurate way to find the middle of a set of values.
x <- c(1,2,3,4,80)
median(x)
[1] 3
#Этот показатель гораздо лучше отражает распределение данных в сравнении со средним
median(df$age)
[1] 19.5
LIMITATION:
Could be very far from the actual middle of the data. The least reliable way to find the middle or average of the data.
TO USE:
the mode when the data is non-numeric or when asked to choose the most popular item.
x <- c(1,2,3,4,80)
Mode(x) #выдает нам ряд данных, потому что в нем нет моды
[1] 1 2 3 4 80
Mode(df$age) #Команда работает с возрастом, потому что в этом ряде чисел мода есть.
[1] 19
z <- c(1,2,3,3,3,4,5,6,7,7,7,8) #несколько мод
Mode(z)
[1] 3 7
Диапазон между максимальным и минимальным значением.
Очень редко используется на практике.
x <- c(9,10,1,2,6,7,4,3,2,9,10)
range(x)
[1] 1 10
#Не отражает разброс данных, так как два очень похожих ряда чисел имеют колоссально разные диапазоны
y <- c(1:10, 40) # двоеточие создает количественный вектор из чисел от 1 до 10
range(y)
[1] 1 40
var(df$age)
[1] 8.0625
Показывает нам величину, которая не равна годам. Однако корень квадратный дисперсии дает нам эту информацию….
sd(df$age)
[1] 2.839454
То есть, разброс данных от среднего (в данном случае, стандартное отклонение) составляет 2.8 года.
summary(df$age)
Min. 1st Qu. Median Mean 3rd Qu. Max.
16.00 18.00 19.50 20.06 21.25 26.00
summary(df$gender)
female male
8 8
hist(df$age)
На графике плотности вероятности нормальность распределения видна лучше, так как игнорируется ширина столбцов.
plot(density(df$age))
Команда исполняет то же самое. Попробуйте понять логику кода
d <- density(df$age)
plot(d)
n до 60, 100, 500, 1000 наблюдений и повторите исполнение команды. x <- rnorm(mean = 10, sd = 4, n=1000)
hist(x)
set.seed(453) #сделает нашу симуляцию воспроизводимой
math_ege <- rnorm(n=16, mean = 52, sd = 10) #создали вектор, обозначающий результат наших 16 студентов по ЕГЭ по математике
df$math_ege <- math_ege #приписали эту переменную к нашей уже имеющейся базе данных из 16 студентов
Минимальное значение ЕГЭ, необходимое для поступления в ВУЗ, составляет 60 баллов из 100.
pnorm(60, df$math_ege, mean = 50 , sd =10) #вероятность того, что балл будет до 60
[1] 0.8413447
1 - pnorm(60, df$math_ege, mean = 50 , sd = 10) #вероятность того, что превысит 60
[1] 0.1586553
pnorm(60, df$math_ege, mean = 50 , sd = 10) - pnorm(50, df$math_ege, mean = 50 , sd = 10) #вероятность того, что результат экзамена составляет от 50 до 60 баллов
[1] 0.3413447