Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Качественные и количественные методы психологических исследований количественные методы. Практикум.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
830 Кб
Скачать

2. Описательные статистики

Рассмотрим традиционные описательные статистики. В R их можно получить несколькими способами. Используя базовый R, можно воспользоваться функцией summary():

summary(epi.bfi)

 

 

 

 

 

 

 

 

 

 

##

 

epiE

 

epiS

 

 

epiImp

 

epilie

 

 

##

Min.

: 1.0

Min.

:

0.00

Min.

 

:0.00

Min.

:0.00

 

 

##

1st Qu.:11.0

1st Qu.:

6.00

1st Qu.:3.00

1st Qu.:1.00

 

 

##

Median :14.0

Median :

8.00

Median :4.00

Median :2.00

 

 

##

Mean

:13.3

Mean

:

7.58

Mean

 

:4.37

Mean

:2.38

 

 

##

3rd Qu.:16.0

3rd Qu.:

9.50

3rd Qu.:6.00

3rd Qu.:3.00

 

 

##

Max.

:22.0

Max.

:13.00

Max.

 

:9.00

Max.

:7.00

 

 

##

epiNeur

bfagree

bfcon

bfext

bfneur

##

Min.

: 0.0

Min.

:

74

Min.

:

53

Min.

: 8.0

Min.

: 34

##

1st Qu.: 7.0

1st Qu.:112

1st Qu.:

99

1st Qu.: 87.5

1st Qu.: 70

##

Median :10.0

Median :126

Median :114

Median :104.0

Median : 90

##

Mean

:10.4

Mean

:125

Mean

:113

Mean

:102.2

Mean

: 88

##

3rd Qu.:14.0

3rd Qu.:136

3rd Qu.:128

3rd Qu.:118.0

3rd Qu.:104

##

Max.

:23.0

Max.

:167

Max.

:178

Max.

:168.0

Max.

:152

##

 

bfopen

 

bdi

 

traitanx

stateanx

 

 

##

Min.

: 73

Min.

: 0.00

Min.

 

:22

Min.

:21.0

 

 

##

1st Qu.:110

1st Qu.: 3.00

1st Qu.:32

1st Qu.:32.0

 

 

##

Median :125

Median : 6.00

Median :38

Median :38.0

 

 

##

Mean

:123

Mean

: 6.78

Mean

 

:39

Mean

:39.8

 

 

##

3rd Qu.:136

3rd Qu.: 9.00

3rd Qu.:44

3rd Qu.:46.5

 

 

##

Max.

:173

Max.

:27.00

Max.

 

:71

Max.

:79.0

 

 

Функция summary() выводит 6 характеристик: минимум (0 %), 1-й квартиль (25 %), медиану (2-й квартиль, 50 %), среднее арифметическое, 3-й квартиль (75 %), максимум (100 %). Для получения более обширного списка описательных статистик можно прибегнуть к функции describe() пакета "psych":

describe(epi.bfi)

 

 

 

 

 

 

 

 

 

##

vars n

mean

sd median trimmed

mad min max range

skew

## epiE

1 231

13.33

4.14

14

13.49

4.45

1

22

21

-0.33

## epiS

2 231

7.58

2.69

8

7.77

2.97

0

13

13

-0.57

## epiImp

3 231

4.37

1.88

4

4.36

1.48

0

9

9

0.06

## epilie

4 231

2.38

1.50

2

2.27

1.48

0

7

7

0.66

## epiNeur

5 231

10.41

4.90

10

10.39

4.45

0

23

23

0.06

## bfagree

6 231

125.00

18.14

126

125.26

17.79

74

167

93

-0.21

## bfcon

7 231

113.25

21.88

114

113.42

22.24

53

178

125

-0.02

## bfext

8 231

102.18

26.45

104

102.99

22.24

8

168

160

-0.41

## bfneur

9 231

87.97

23.34

90

87.70

23.72

34

152

118

0.07

## bfopen

10 231

123.43

20.51

125

123.78

20.76

73

173

100

-0.16

## bdi

11 231

6.78

5.78

6

5.97

4.45

0

27

27

1.29

## traitanx

12 231

39.01

9.52

38

38.36

8.90

22

71

49

0.67

7

## stateanx

13 231

39.85 11.48

38 38.92 10.38 21 79

58 0.72

##

kurtosis

se

 

 

## epiE

-0.06 0.27

 

 

## epiS

-0.02 0.18

 

 

## epiImp

-0.62 0.12

 

 

## epilie

0.24

0.10

 

 

## epiNeur

-0.50 0.32

 

 

## bfagree

-0.27 1.19

 

 

## bfcon

0.23

1.44

 

 

## bfext

0.51

1.74

 

 

## bfneur

-0.55 1.54

 

 

## bfopen

-0.16 1.35

 

 

## bdi

1.50

0.38

 

 

## traitanx

0.47

0.63

 

 

## stateanx

-0.01 0.76

 

 

Результатом функции являются: порядковый номер переменной (vars), количество наблюдений (n), среднее арифметическое (mean), стандартное отклонение (sd), медиана (median), усеченное среднее (trimmed) (по умолчанию отсекаются 10 % самых низких и 10 % самых высоких значений), медианное абсолютное отклонение (mad), минимум (min), максимум (max), размах между минимумом и максимумом (range), асимметрия (skew), эксцесс (kurtosis), стандартная ошибка среднего (se).

Также многие описательные статистики можно получить напрямую, использовав соответствующую функцию:

# Среднее арифметическое mean(epi.bfi$epiE, na.rm = T)

## [1] 13.333

# Усеченное среднее (аргумент trim = 0.1 позволяет отсечь 10 % самых низких и 10 % самых высоких значений)

mean(epi.bfi$epiE, na.rm = T, trim = 0.1)

## [1] 13.492

# Медиана

median(epi.bfi$epiE, na.rm = T)

## [1] 14

# Дисперсия var(epi.bfi$epiE, na.rm = T)

## [1] 17.101

# Стандартное отклонение sd(epi.bfi$epiE, na.rm = T)

## [1] 4.1354

8

# Медианное абсолютное отклонение mad(epi.bfi$epiE, na.rm = T)

## [1] 4.4478

# Минимум

min(epi.bfi$epiE, na.rm = T)

## [1] 1

# Максимум max(epi.bfi$epiE, na.rm = T)

## [1] 22

# Размах между минимумом и максимумом (выводит значения минимума и максимума) range(epi.bfi$epiE, na.rm = T)

## [1] 1 22

# Квантили: 0 (минимум), 25 % (1-й квартиль), 50 % (медиана, 2-й квартиль), 75 % (3-й квартиль), 100 % (максимум)

quantile(epi.bfi$epiE)

##

0%

25%

50%

75%

100%

##

1

11

14

16

22

 

 

 

 

 

 

# Возможно задание произвольных квантилей (здесь – 10 % и 90 %) quantile(epi.bfi$epiE, probs = c(0.1, 0.9))

## 10% 90% ## 8 19

# Межквартильный размах (размах между 1-м и 3-м квартилями)

IQR(epi.bfi$epiE, na.rm = T)

## [1] 5

# Сумма

sum(epi.bfi$epiE, na.rm = T)

## [1] 3080

# Всего наблюдений length(epi.bfi$epiE)

## [1] 231

# Количество наблюдений без пропусков sum(!is.na(epi.bfi$epiE))

## [1] 231

9

Аргумент na.rm = T позволяет функции обходить пропущенные значения, в противном случае, при наличии даже одного пропущенного значения, функция не будет выполнена и выдаст ошибку.

Ряд важных описательных статистик отсутствует в базовом R, но их легко можно написать самостоятельно, зная соответствующую формулу, например:

# Функция для расчета стандартной ошибки среднего:

SE <- function(x) {sd(x, na.rm = T)/sqrt(length(x))}

SE(epi.bfi$epiE)

## [1] 0.27209

# Функция для расчета асимметрии

Skew <- function(x) {(sum((x - mean(x, na.rm = T))^3)) / (length(x)*sd(x, na.rm = T)^3)}

Skew(epi.bfi$epiE) ## [1] -0.32987

# Функция для расчета эксцесса

Kurt <- function(x) {((sum((x - mean(x, na.rm = T))^4)) / (length(x)*sd(x, na.rm = T)^4)) - 3}

Kurt(epi.bfi$epiE)

## [1] -0.064587

# Функция для расчета моды (не рекомендуется называть авторские функции так же, как названы функции в R, поэтому вместо уже существующей в R функции "mode", выполняющей, правда, другую задачу, назовем нашу функцию "moda"):

moda <- function(x) { uniq <- unique(x)

uniq[which.max(tabulate(match(x, uniq)))]

}

moda(epi.bfi$epiE)

## [1] 14

Некоторые функции можно найти в других пакетах, например, в пакете "psych" есть функции для расчета асимметрии и эксцесса:

library(psych) skew(epi.bfi$epiE)

## [1] -0.32987

kurtosi(epi.bfi$epiE)

## [1] -0.064587

Когда необходимо одну функцию применить к нескольким переменным, можно воспользоваться функцией apply():

10

# На вход подаем датафрейм, указываем, что функцию следует применять к столбцам (1 – строки, 2 – столбцы), далее задаем интересующую нас функцию (возможно использовать авторскую функцию)

apply(X = epi.bfi, MARGIN = 2, FUN = mean)

##

epiE

epiS

epiImp

epilie

epiNeur

bfagree

bfcon

bfext

##

13.3333

7.5844

4.3680

2.3766

10.4113

124.9957

113.2511

102.1775

##

bfneur

bfopen

bdi traitanx stateanx

 

 

 

##87.9697 123.4286 6.7792 39.0087 39.8485

Если необходимо применить описательные статистики отдельно по группам, то можно воспользоваться функцией describeBy() пакета "psych":

library(psych)

# Создаем новую переменную в датасете: если депрессивность у респондента выше среднего, то указываем в новой переменной - "высокая", иначе указываем - "низкая"

epi.bfi$depr <- ifelse(epi.bfi$bdi > mean(epi.bfi$bdi),

"высокая", "низкая")

# Указываем все переменные, за вычетом последней, группирующей, затем указываем группирующую переменную

describeBy(x = epi.bfi[, -ncol(epi.bfi)], group = epi.bfi$depr)

##

##Descriptive statistics by group

##group: высокая

##

vars n

mean

sd median trimmed

mad min max range

skew

## epiE

1 99

12.84

4.09

13

13.02

4.45

1

21

20

-0.44

## epiS

2 99

7.31

2.64

8

7.49

2.97

0

13

13

-0.64

## epiImp

3 99

4.13

1.89

4

4.10

1.48

0

8

8

0.10

## epilie

4 99

2.22

1.34

2

2.19

1.48

0

6

6

0.41

## epiNeur

5 99

13.13

4.28

13

13.16

4.45

2

23

21

-0.04

## bfagree

6 99

122.61

18.83

124

122.68

17.79

74

167

93

-0.11

## bfcon

7 99

109.82

22.00

110

110.15

23.72

58

167

109

-0.09

## bfext

8 99

97.82

27.38

102

100.01

25.20

8

147

139

-0.80

## bfneur

9 99

97.47

21.78

100

97.79

23.72

34

152

118

-0.16

## bfopen

10 99

119.82

21.91

122

120.21

20.76

73

172

99

-0.14

## bdi

11 99

11.88

5.20

10

11.09

4.45

7

27

20

1.22

## traitanx

12 99

44.93

9.09

44

44.25

10.38

30

71

41

0.71

## stateanx

13 99

46.74

11.63

46

46.35

13.34

26

79

53

0.30

##

kurtosis

se

 

 

 

 

 

 

 

 

## epiE

-0.33

0.41

 

 

 

 

 

 

 

 

## epiS

0.01

0.27

 

 

 

 

 

 

 

 

## epiImp

-0.59

0.19

 

 

 

 

 

 

 

 

## epilie

0.10

0.13

 

 

 

 

 

 

 

 

## epiNeur

-0.42

0.43

 

 

 

 

 

 

 

 

11

## bfagree

-0.14

1.89

 

 

 

 

 

 

 

 

## bfcon

-0.32

2.21

 

 

 

 

 

 

 

 

## bfext

0.53

2.75

 

 

 

 

 

 

 

 

## bfneur

-0.15

2.19

 

 

 

 

 

 

 

 

## bfopen

-0.42

2.20

 

 

 

 

 

 

 

 

## bdi

0.51

0.52

 

 

 

 

 

 

 

 

## traitanx

0.13

0.91

 

 

 

 

 

 

 

 

## stateanx

-0.58

1.17

 

 

 

 

 

 

 

 

## --------------------------------------------------------

 

 

## group: низкая

 

 

 

 

 

 

 

 

 

##

vars n

mean

sd median trimmed

mad min max range

skew

## epiE

1 132

13.70

4.15

14.0

13.84

3.71

2

22

20

-0.26

## epiS

2 132

7.79

2.71

8.0

7.96

2.97

1

13

12

-0.54

## epiImp

3 132

4.55

1.86

4.0

4.57

1.48

1

9

8

0.05

## epilie

4 132

2.49

1.60

2.0

2.38

1.48

0

7

7

0.70

## epiNeur

5 132

8.37

4.32

8.0

8.31

4.45

0

20

20

0.14

## bfagree

6 132

126.79 17.47

129.0

127.25

16.31

82

165

83

-0.25

## bfcon

7 132

115.83 21.51

115.0

115.75

19.27

53

178

125

0.05

## bfext

8 132

105.45 25.35

105.0

105.37

21.50

38

168

130

0.00

## bfneur

9 132

80.84 21.95

79.5

80.27

27.43

35

144

109

0.26

## bfopen

10 132

126.14 19.03

127.5

126.27

17.05

75

173

98

-0.05

## bdi

11 132

2.95

1.99

3.0

2.94

2.97

0

6

6

0.04

## traitanx

12 132

34.57

7.14

34.0

34.28

7.41

22

54

32

0.37

## stateanx

13 132

34.68

8.22

33.0

33.97

8.90

21

58

37

0.75

##

kurtosis

se

 

 

 

 

 

 

 

 

## epiE

0.02

0.36

 

 

 

 

 

 

 

 

## epiS

-0.10

0.24

 

 

 

 

 

 

 

 

## epiImp

-0.69

0.16

 

 

 

 

 

 

 

 

## epilie

0.01

0.14

 

 

 

 

 

 

 

 

## epiNeur

-0.51

0.38

 

 

 

 

 

 

 

 

## bfagree

-0.44

1.52

 

 

 

 

 

 

 

 

## bfcon

0.57

1.87

 

 

 

 

 

 

 

 

## bfext

-0.08

2.21

 

 

 

 

 

 

 

 

## bfneur

-0.54

1.91

 

 

 

 

 

 

 

 

## bfopen

-0.12

1.66

 

 

 

 

 

 

 

 

## bdi

-1.20

0.17

 

 

 

 

 

 

 

 

## traitanx

-0.50

0.62

 

 

 

 

 

 

 

 

## stateanx

0.25

0.72

 

 

 

 

 

 

 

 

Можно применить произвольные описательные статистики отдельно к каждой группе, использовав функцию tapply():

tapply(X = epi.bfi$epiE, INDEX = epi.bfi$depr, FUN = mean)

##высокая низкая

##12.838 13.705

12

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]