Предлагаю порешать еще один кейс. Кейс реальный.
Протестировали действующих работников по тесту с шестью шкалами.
Решение можно узнать на вебинаре Прогноз эффективности кандидатов на основе тестов 2 июля
в строках - работники
результативность: 1 - работник результативный, 0 - не очень результативный
Шкалы теста - результаты теста работников
Протестировали действующих работников по тесту с шестью шкалами.
Задачи:
- На какие шкалы нужно смотреть при отборе кандидатов (если, вообще, стоит смотреть на каие то шкалы)
- Какие значения этих шкал мы принимаем для отбора.
- Какова точность отбора при принятых нами параметрах
Решение можно узнать на вебинаре Прогноз эффективности кандидатов на основе тестов 2 июля
Данные кейса
в строках - работники
результативность: 1 - работник результативный, 0 - не очень результативный
Шкалы теста - результаты теста работников
№
|
возраст
|
результативность
|
Шкала 1
|
Шкала 2
|
Шкала 3
|
Шкала 4
|
Шкала 5
|
Шкала 6
|
1
|
27
|
1
|
20
|
64
|
27
|
15
|
12
|
39
|
2
|
35
|
0
|
11
|
47
|
28
|
12
|
15
|
41
|
3
|
32
|
1
|
30
|
47
|
25
|
19
|
15
|
53
|
4
|
27
|
0
|
6
|
52
|
25
|
12
|
11
|
36
|
5
|
28
|
0
|
28
|
57
|
52
|
9
|
12
|
36
|
6
|
33
|
1
|
38
|
63
|
21
|
20
|
16
|
55
|
7
|
38
|
1
|
6
|
52
|
35
|
15
|
12
|
45
|
8
|
42
|
0
|
0
|
57
|
32
|
13
|
13
|
39
|
9
|
28
|
0
|
26
|
56
|
24
|
14
|
11
|
41
|
10
|
27
|
1
|
34
|
57
|
22
|
13
|
12
|
42
|
11
|
31
|
1
|
32
|
52
|
22
|
17
|
16
|
49
|
13
|
33
|
1
|
6
|
58
|
36
|
9
|
13
|
34
|
14
|
30
|
0
|
5
|
43
|
34
|
14
|
10
|
33
|
16
|
29
|
1
|
-12
|
44
|
40
|
17
|
15
|
51
|
17
|
30
|
1
|
42
|
60
|
16
|
20
|
15
|
54
|
18
|
27
|
1
|
29
|
48
|
18
|
16
|
15
|
50
|
19
|
30
|
0
|
39
|
61
|
35
|
15
|
11
|
41
|
20
|
30
|
0
|
28
|
65
|
32
|
18
|
14
|
51
|
21
|
27
|
0
|
7
|
47
|
38
|
12
|
11
|
39
|
22
|
30
|
1
|
23
|
43
|
19
|
19
|
18
|
52
|
23
|
34
|
0
|
3
|
54
|
23
|
20
|
16
|
56
|
24
|
31
|
1
|
29
|
59
|
30
|
15
|
13
|
43
|
25
|
34
|
0
|
18
|
58
|
37
|
14
|
12
|
41
|
26
|
33
|
1
|
-1
|
52
|
42
|
8
|
13
|
34
|
27
|
29
|
1
|
39
|
47
|
23
|
20
|
16
|
55
|
28
|
34
|
0
|
27
|
57
|
37
|
15
|
14
|
46
|
29
|
29
|
0
|
3
|
51
|
29
|
9
|
10
|
35
|
30
|
40
|
0
|
11
|
53
|
46
|
15
|
15
|
44
|
31
|
33
|
0
|
3
|
59
|
43
|
12
|
10
|
37
|
32
|
39
|
1
|
30
|
49
|
26
|
18
|
14
|
51
|
33
|
28
|
0
|
17
|
44
|
36
|
20
|
19
|
59
|
34
|
34
|
0
|
-28
|
50
|
42
|
17
|
11
|
46
|
35
|
33
|
0
|
22
|
63
|
29
|
12
|
14
|
45
|
36
|
37
|
0
|
3
|
55
|
43
|
15
|
10
|
41
|
37
|
39
|
1
|
6
|
39
|
34
|
13
|
14
|
44
|
38
|
32
|
0
|
-5
|
44
|
30
|
5
|
8
|
28
|
39
|
32
|
0
|
17
|
44
|
30
|
15
|
15
|
45
|
40
|
29
|
0
|
7
|
59
|
37
|
11
|
14
|
39
|
41
|
39
|
1
|
20
|
52
|
23
|
20
|
14
|
50
|
42
|
28
|
1
|
16
|
51
|
20
|
15
|
14
|
45
|
43
|
32
|
0
|
11
|
60
|
29
|
10
|
7
|
32
|
44
|
28
|
1
|
23
|
38
|
32
|
20
|
18
|
58
|
45
|
39
|
0
|
8
|
38
|
21
|
14
|
16
|
43
|
46
|
28
|
0
|
42
|
55
|
20
|
13
|
14
|
43
|
47
|
28
|
1
|
17
|
51
|
36
|
19
|
13
|
46
|
48
|
37
|
1
|
-4
|
50
|
31
|
14
|
13
|
41
|
50
|
27
|
1
|
34
|
50
|
23
|
18
|
18
|
55
|
51
|
30
|
0
|
-6
|
68
|
23
|
19
|
12
|
50
|
52
|
31
|
0
|
-6
|
57
|
38
|
16
|
15
|
46
|
53
|
34
|
0
|
35
|
52
|
19
|
12
|
11
|
37
|
54
|
33
|
0
|
-17
|
51
|
39
|
14
|
14
|
47
|
55
|
35
|
0
|
23
|
51
|
26
|
18
|
17
|
55
|
56
|
29
|
1
|
6
|
37
|
36
|
16
|
15
|
46
|
57
|
35
|
0
|
-11
|
51
|
37
|
13
|
10
|
37
|
58
|
36
|
0
|
38
|
64
|
22
|
20
|
14
|
54
|
59
|
31
|
0
|
20
|
57
|
26
|
13
|
12
|
38
|
61
|
30
|
0
|
2
|
55
|
38
|
13
|
10
|
37
|
62
|
28
|
0
|
-11
|
55
|
37
|
17
|
10
|
42
|
63
|
33
|
1
|
20
|
58
|
24
|
14
|
11
|
43
|
64
|
29
|
0
|
-3
|
65
|
34
|
14
|
9
|
42
|
65
|
30
|
0
|
11
|
69
|
25
|
15
|
14
|
46
|
66
|
33
|
1
|
17
|
61
|
31
|
17
|
15
|
49
|
Покрутил цифры на скорую руку:
ОтветитьУдалить1. Смотрим на 1 и 2 шкалы. Причём в случае второй - чем меньше, тем лучше.
2. Точность модели - 0.21, но судя по значению нормированного R^2 - модель вышла весьма сомнительного качества.
мультиколлинеарность не проверял?
УдалитьПостроил корреляционную матрицу, откинул 4 и 5 шкалы.
ОтветитьУдалитьТак - только 2 шкалу принимаем во внимание.
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.858014 0.872223 0.984 0.3295
age -0.003633 0.015609 -0.233 0.8168
scale1 0.005709 0.004561 1.252 0.2159
scale2 -0.016083 0.008016 -2.006 0.0497 *
scale3 -0.007525 0.008969 -0.839 0.4051
scale6 0.015013 0.009142 1.642 0.1062
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.4554 on 56 degrees of freedom
Multiple R-squared: 0.2215, Adjusted R-squared: 0.1519
F-statistic: 3.186 on 5 and 56 DF, p-value: 0.01335
а ты логистическую регрессию делаешь в R?
Удалитьпострой функцию glm - она почти как lm
Затупил, зависимая то у нас бинарна.
УдалитьНу тогда вот так:
Call:
glm(formula = perform ~ scale1 + scale2 + scale3, family = "binomial")
Deviance Residuals:
Min 1Q Median 3Q Max
-1.6299 -0.9317 -0.5306 1.0004 1.8374
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 4.92307 2.50859 1.962 0.0497 *
scale1 0.03866 0.02357 1.640 0.1010
scale2 -0.08567 0.04074 -2.103 0.0355 *
scale3 -0.04555 0.04485 -1.016 0.3098
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 83.613 on 61 degrees of freedom
Residual deviance: 71.450 on 58 degrees of freedom
AIC: 79.45
Number of Fisher Scoring iterations: 4
Следовательно, уменьшение на одну единицу проявления по второй шкале, увеличивает логарифм шанса быть эффективным(по сравнению с перспективой таковым не быть) на 0.08567. Ну или после экспонирования 0.9178988
Как-то так?
хм...надо букварики по логит регрессии почитать.
почитай
Удалитьа про selection model читал букварики?
у тебя задача: 6 переменных, если их все запихать в уравнение, то получается говно, верно?
следовательно, нужно выбрать только такие переменные, чтобы все уравнение имело какой то смысл, т.е. переменные должны быть значимы
интересно получается, пришёл к следующему:
ОтветитьУдалитьCall:
glm(formula = perform ~ scale1 + scale2, family = binomial)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.5285 -0.9249 -0.5337 1.0033 1.7712
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 3.59995 2.11867 1.699 0.0893 .
scale1 0.05165 0.02007 2.574 0.0101 *
scale2 -0.09043 0.04122 -2.194 0.0283 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 83.613 on 61 degrees of freedom
Residual deviance: 72.540 on 59 degrees of freedom
AIC: 78.54
Number of Fisher Scoring iterations: 3
1-pchisq(72.540, 59)
[1] 0.1107664
Хотя, если смотреть на перебор моделей и выбирать с самым низким по критерию Акаике(AIC), то это будет не то, что предоставлено выше, а незначимая хрень.
Придётся ещё почитать букварики по AICам да прочим BICам.
а минимальный AIC при какой модели?
Удалитьсам себя перемудрил, смотрел на AIC при переборе вариантов с подстановкой синтетических переменных в модель через
Удалитьadd1 и последующий дисп.анализ.
логика была такая:
regtest <- glm ( эффективность ~ сумма всех переменных)
anova(regtest,test="Chisq")
add1(regtest, ~.^2,test="Chisq")
search <- step(regtest, ~.^2)
search$anova
но тут, как я понял пошли подогнанные вероятности и меня унесло совсем не туда.
Потом решил не мудрить, а использовать просто step(regtest, direction = "both")
Получил AIC 77.39:
Call:
glm(formula = perform ~ scale1 + scale2 + scale4, family = binomial)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.7370 -0.8736 -0.5355 0.8950 2.1457
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.95502 2.63174 0.363 0.7167
scale1 0.03949 0.02021 1.954 0.0507 .
scale2 -0.08437 0.04191 -2.013 0.0441 *
scale4 0.16723 0.09810 1.705 0.0882 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 83.613 on 61 degrees of freedom
Residual deviance: 69.386 on 58 degrees of freedom
AIC: 77.386
Number of Fisher Scoring iterations: 3
ты логистическую регрессию как изучаешь? по текстам в R? На курсах?
УдалитьПо текстам.
ОтветитьУдалитькруто) сам вышел на step logistic))
Удалитьтогда еще не забудь выйти на кросс валидацию - потому что на тест сете могут быть другие результаты получены
а нас больше интересует Акьюраси или Карра
пакет cvTools ?
Удалитьда там куча пакетов
Удалитья сейчас на caret перехожу, функция train, когда ты подбираешь показатели уравнения, которые обладают максимальным акьюраси или r^2
ну и там фишка не столько в лучше акьюраси, сколько в том, чтобы избежатьоверфитинга
на пальцах сложно объяснить, надо подумать, какой курс лучше