Разделение двоичных данных на основе вариаций - PullRequest
0 голосов
/ 27 ноября 2018

Контекст проблемы
Поскольку моя проблема касается довольно сложной молекулярной биологии, я воспользуюсь аналогией, чтобы упростить это.Допустим, у нас есть поле деревьев, где у каждого дерева есть набор одинаково важных важных характеристик, таких как leaf color, leaf shape и т. Д. Фермер посадил деревья группами по четыре, состоящими из одного дерева species x и трехдеревья species y.Что в отношении данных будет выглядеть следующим образом:

Group leaf.color leaf.shape
1     green      linear
1     red        ovate
1     red        linear
1     yellow     linear
2     green      deltoid
2     green      deltoid
2     brown      ovate
2     red        reniform 

С leaf.color категориями = зелеными, красными, желтыми, выращенными и leaf.shape категориями линейными, яйцевидными, дельтовидными и почковидными.Фермер забыл, что это за дерево, но мы знаем, что большинство (3/4) данных поступает из species y и 1/4 из species x.Чтобы работать с этими данными (точнее, с нашей молекулярной проблемой), нам нужно определить некоторое расстояние.Мы выбрали одинаковую важность каждой категории, так что расстояние между каждой категорией равно 1. Мы сделали это путем преобразования наших переменных в двоичные векторы:

  random.id group leaf.color.yellow leaf.color.red leaf.color.green leaf.color.brown leaf.shape.linear leaf.shape.deltoid
1         1     1                 0              0                1                0                 1                  0
2         2     1                 0              1                0                0                 0                  0
3         3     1                 0              1                0                0                 1                  0
4         4     1                 1              0                0                0                 1                  0
5         5     2                 0              0                1                0                 0                  1
6         6     2                 0              0                1                0                 0                  1
7         7     2                 0              0                0                1                 0                  0
8         8     2                 0              1                0                0                 0                  0
  leaf.shape.ovate leaf.shape.reniform
1                0                   0
2                1                   0
3                0                   0
4                0                   0
5                0                   0
6                0                   0
7                1                   0
8                0                   1

Как мы знаем, species x и species y имеютПо отдельным характеристикам (очевидно, не выделяющимся в этом небольшом нереалистичном примере) мы решили применить факторный анализ, чтобы увидеть, какая из особенностей отличает две группы. В нашем реальном наборе данных у нас есть ~ 15.000 наблюдений (из которых 1/4 = x и 3/4 = y), каждое из которых имеет 49 переменных 4 категорий.Мы выполнили факторный анализ с использованием пакета R psych:

fit <- fa(mat, nfactors=1)

Это даст несколько предупреждений:

The determinant of the smoothed correlation was zero.
This means the objective function is not defined.
Chi square is based upon observed residuals.
The determinant of the smoothed correlation was zero.
This means the objective function is not defined for the null model either.
The Chi square is thus based upon observed correlations.
The estimated weights for the factor scores are probably incorrect.  Try a different factor extraction method.
In factor.scores, the correlation matrix is singular, an approximation is used

Тем не менее, результат был довольно хороший, мы сгруппировали данные по группе(в примере 1 или 2), а затем выбрал дерево с наивысшей оценкой PA в качестве вида x.Затем мы можем проверить это, поскольку у нас есть точные виды в отдельной таблице.Это показало, что мы могли правильно «классифицировать» деревья в ~ 84% случаев .Затем я провел поиск на разных форумах, чтобы повысить производительность нашего факторного анализа для двоичных (или дихотомических) данных:

  • Использовать тетрахорическую корреляцию ( ResearchGate )
  • Использоватьoblimin вместо Varimax (как мы ожидаем, зависимость между определенными характеристиками дерева) ( link )
  • Сообщать оценку tenBerge вместо оценок регрессии ( link )

Вопрос
Учитывая вышеприведенные данные (15.000 наблюдений 49 бинарных переменных), что было бы распространенным способом разделения этих данных на две группы, при условии достаточного различия между группами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...