Определить вклад дисперсии каждого игрока в питоне - PullRequest
0 голосов
/ 04 июня 2018

после просмотра множества методов и сообщений, мне пока не ясно, как решить эту проблему, которая кажется интуитивно простой.У меня есть следующий набор данных с оценками 5 игроков.Его выборочная дисперсия составляет 2,98108.

PLAYER  |   SCORE
-------------------
Bernard |   22.66
Bernard |   27.365
Bernard |   22.814
Anton   |   25.012
Anton   |   23.676
Anton   |   23.954
Carine  |   24.722
Carine  |   24.026
Carine  |   24.335
Carine  |   24.05
Bernard |   23.925
Bernard |   24.355
Bernard |   26.699
Carine  |   27.999
David   |   28.701
David   |   22.57
David   |   22.365
David   |   25.49
David   |   26.757
David   |   23.878
David   |   24.609
David   |   22.803
Anton   |   25.227
Anton   |   25.348
Carine  |   27.523
Carine  |   28.38
Carine  |   28.628
Bernard |   26.651
Bernard |   25.377
Anton   |   27.767
Anton   |   24.81
Anton   |   24.835
Eloy    |   26.672
Eloy    |   25.683
Eloy    |   26.657
Eloy    |   24.463
Eloy    |   25.808
Eloy    |   25.414
Eloy    |   26.044
Eloy    |   25.619

Я хотел бы определить, в какой степени каждый из игроков внес свой вклад в дисперсию целого.

Anton   |   Bernard |   Carine  |   David   |   Eloy
------------------------------------------------------                              
25.227  |   26.651  |   24.722  |   28.701  |   26.672
25.348  |   25.377  |   24.026  |   22.57   |   25.683
27.767  |   22.66   |   24.335  |   22.365  |   26.657
24.81   |   27.365  |   24.05   |   25.49   |   24.463
24.835  |   22.814  |   27.523  |   26.757  |   25.808
25.012  |   23.925  |   28.38   |   23.878  |   25.414
23.676  |   24.355  |   28.628  |   24.609  |   26.044
23.954  |   26.699  |   27.999  |   22.803  |   25.619

Обратите внимание, что у меня нетлюбая целевая переменная: я не подгоняю оценки игроков к зависимой переменной.Это затрудняет (для меня) использование таких методов, как значение shapley, sklearn.feature_selection.chi2 или feature_importances_, где fit и fit_transform требуют целевой переменной.

PCA Scikit дает следующие матрицы:

компоненты _:

-0.21261656 |   0.56000412  |   -0.19875582 |   0.77420244  |   -0.04791964
-0.31918083 |   -0.29286871 |   0.83464075  |   0.33964441  |   0.01918345
0.50226936  |   -0.55051268 |   -0.21507693 |   0.50440938  |   0.37943954
0.08884174  |   -0.33440461 |   -0.13381735 |   0.17548621  |   -0.9119091
0.76990287  |   0.4309671   |   0.44688451  |   0.00529465  |   -0.14759107

объяснено_вариант_рацио _:

0.43725481  |   0.38896865  |   0.14361466  |   0.01989021  |   0.01027166

Я хотел бы иметь таблицу результатов, как:

Anton       |   Bernard     |   Carine     |    David       |   Eloy
-------------------------------------------------------------------------                           
0.20195141  |   0.18162131  |   0.30601668  |   0.15273025  |   0.15768035

, говорящая мне, что Карин была самой большойучастник с 30% от общей дисперсии и т. д. для остальных игроков.

Могу ли я использовать эти матрицы (компоненты и объясненные_вариант_рациона), чтобы вывести общий вклад каждого игрока в общую дисперсию?Если да, как я могу это сделать?

Спасибо

1 Ответ

0 голосов
/ 04 июня 2018

Поскольку у каждого игрока есть ровно 8 выборок данных, суммируйте квадратные ошибки от (общего) среднего значения для всех выборок и суммируйте эти ошибки сначала по игроку (8 выборок каждый, получая 5 чисел) и суммируйте эти 5 чисел дляобщая суммаКаждое из 5 чисел, разделенное на это общее, даст вам желаемое значение.

...