Как я могу рассчитать корреляцию в подгруппах моего образца в Excel - PullRequest
0 голосов
/ 16 февраля 2019

Я анализирую результаты опроса, и у меня есть 2 массива, для которых я вычисляю корреляцию в Excel сейчас, что достаточно просто, но как я могу вычислить корреляцию для подгрупп, которые разбросаны по массиву, не делаяэто вручную.например, я хочу вычислить корреляцию между двумя переменными для мужчин между 15-25, а не для всей выборки

Что я уже пробовал, так это то, что я отсортировал выборку на основе необходимого измерения, что означает, что я будусортируйте всю выборку по возрасту, чтобы данные следовали друг за другом, а не разбирались, но это занимает время и не может работать для 2 переменных, таких как возраст и пол

1 Ответ

0 голосов
/ 16 февраля 2019

вы можете сделать что-то вроде этого:

=CORREL(QUERY(A2:C, "select A where B='15-20' and C='F'", 0),
        QUERY(D2:F, "select D where E='15-20' and F='F'", 0))

или что-то вроде этого:

=CORREL(FILTER(A2:A, B2:B="15-20", C2:C="F"),
        FILTER(D2:D, E2:E="15-20", F2:F="F"))

, но это будет работать, только если у вас будет одинаковая матрица из этих двух массивов ..Проблема с функцией CORREL заключается в том, что ей нужен диапазон одинакового размера, но когда вы FILTER это или QUERY это, тогда диапазоны выходного сигнала будут меняться ...

, тогда вы можете попробовать это:

=IFERROR(CORREL(QUERY({A2:C}, "select Col1 where Col2='15-20' and Col3='F'", 0),
               {QUERY({D2:F}, "select Col1 where Col2='15-20' and Col3='F'", 0);
                TRANSPOSE(SPLIT(REPT("♂♀",
                COUNTA(QUERY({A2:C}, "select Col1 where Col2='15-20' and Col3='F'", 0))-
                COUNTA(QUERY({D2:F}, "select Col1 where Col2='15-20' and Col3='F'", 0))),"♀"))}),
         CORREL(QUERY({D2:F}, "select Col1 where Col2='15-20' and Col3='F'", 0),
               {QUERY({A2:C}, "select Col1 where Col2='15-20' and Col3='F'", 0);
                TRANSPOSE(SPLIT(REPT("♂♀",
                COUNTA(QUERY({D2:F}, "select Col1 where Col2='15-20' and Col3='F'", 0))-
                COUNTA(QUERY({A2:C}, "select Col1 where Col2='15-20' and Col3='F'", 0))),"♀"))}))

примечание: к сожалению, даже это имеет свои ограничения ...

и для максимумас комфортом вы можете сделать это с помощью:

=IFERROR(IFERROR(CORREL(QUERY({A2:C}, "select Col1 where Col2='"&H9&"' and Col3='"&H10&"'", 0),
               {QUERY({D2:F}, "select Col1 where Col2='"&I9&"' and Col3='"&I10&"'", 0);
                TRANSPOSE(SPLIT(REPT("♂♀",
                COUNTA(QUERY({A2:C}, "select Col1 where Col2='"&H9&"' and Col3='"&H10&"'", 0))-
                COUNTA(QUERY({D2:F}, "select Col1 where Col2='"&I9&"' and Col3='"&I10&"'", 0))),"♀"))}),
         CORREL(QUERY({D2:F}, "select Col1 where Col2='"&I9&"' and Col3='"&I10&"'", 0),
               {QUERY({A2:C}, "select Col1 where Col2='"&H9&"' and Col3='"&H10&"'", 0);
                TRANSPOSE(SPLIT(REPT("♂♀",
                COUNTA(QUERY({D2:F}, "select Col1 where Col2='"&I9&"' and Col3='"&I10&"'", 0))-
                COUNTA(QUERY({A2:C}, "select Col1 where Col2='"&H9&"' and Col3='"&H10&"'", 0))),"♀"))})),
 IFERROR(CORREL(QUERY({A2:C}, "select Col1 where Col2='"&H9&"' and Col3='"&H10&"'", 0),
                QUERY({D2:F}, "select Col1 where Col2='"&I9&"' and Col3='"&I10&"'", 0)),
         CORREL(QUERY({D2:F}, "select Col1 where Col2='"&I9&"' and Col3='"&I10&"'", 0),
                QUERY({A2:C}, "select Col1 where Col2='"&H9&"' and Col3='"&H10&"'", 0))))

демонстрационная таблица

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