partialcorr

Линейный или ранговый коэффициенты частичной корреляции

Описание

пример

rho = partialcorr(x) возвращает выборку коэффициентов линейной частичной корреляции между парами переменных в x, управление для остальных переменных в x.

пример

rho = partialcorr(x,z) возвращает выборку коэффициентов линейной частичной корреляции между парами переменных в x, управление для переменных в z.

пример

rho = partialcorr(x,y,z) возвращает выборку коэффициентов линейной частичной корреляции между парами переменных в x и y, управление для переменных в z.

пример

rho = partialcorr(___,Name,Value) возвращает выборку коэффициентов линейной частичной корреляции с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение", используя входные параметры из любого из предыдущих синтаксисов. Например, можно задать, использовать ли частичные корреляции Пирсона или Спирмана, или задать, как обработать отсутствующие значения.

пример

[rho,pval] = partialcorr(___) также возвращает матрицу pval из p значений для проверки гипотезы об отсутствии частичной корреляции против односторонней или двусторонней альтернативы, что существует ненулевая частичная корреляция.

Примеры

свернуть все

Вычислите коэффициенты частичной корреляции между парами переменных в матрице входа.

Загрузите выборочные данные. Преобразование полов в hospital.Sex в идентификаторы числовых групп.

load hospital;
hospital.SexID = grp2idx(hospital.Sex);

Создайте матрицу входа, содержащую выборочные данные.

x = [hospital.SexID hospital.Age hospital.Smoker hospital.Weight];

Каждая строка в x содержит пол, возраст, статус курения и вес пациента.

Вычислите коэффициенты частичной корреляции между парами переменных в x, при одновременном контроле за эффектами остальных переменных в x.

rho = partialcorr(x)
rho = 4×4

    1.0000   -0.0105    0.0273    0.9421
   -0.0105    1.0000    0.0419    0.0369
    0.0273    0.0419    1.0000    0.0451
    0.9421    0.0369    0.0451    1.0000

Матрица rho указывает, например, корреляцию 0,9421 между полом и весом после контроля для всех других переменных в x. Вы можете вернуть p- значения как второй выход и исследует их, чтобы подтвердить, являются ли эти корреляции статистически значимыми.

Для более четкого отображения создайте таблицу с соответствующими метками переменных и строк.

rho = array2table(rho, ...
    'VariableNames',{'SexID','Age','Smoker','Weight'},...
    'RowNames',{'SexID','Age','Smoker','Weight'});

disp('Partial Correlation Coefficients')
Partial Correlation Coefficients
disp(rho)
               SexID        Age        Smoker      Weight 
              ________    ________    ________    ________

    SexID            1    -0.01052    0.027324      0.9421
    Age       -0.01052           1    0.041945    0.036873
    Smoker    0.027324    0.041945           1    0.045106
    Weight      0.9421    0.036873    0.045106           1

Тест на частичную корреляцию между парами переменных в вход матрице, в то же время управляя эффектами второго набора переменных.

Загрузите выборочные данные. Преобразование полов в hospital.Sex в идентификаторы числовых групп.

load hospital;
hospital.SexID = grp2idx(hospital.Sex);

Создайте две матрицы, содержащие выборочные данные.

x = [hospital.Age hospital.BloodPressure];
z = [hospital.SexID hospital.Smoker hospital.Weight];

The x матрица содержит переменные для проверки на частичную корреляцию. The z матрица содержит переменные для управления. Измерения для BloodPressure содержатся в двух столбцах: В первом столбце содержится верхний (systolic) номер, а во втором - нижний (diastolic) номер. partialcorr рассматривает каждый столбец как отдельную переменную.

Тест на частичную корреляцию между парами переменных в x, с одновременным управлением эффектами переменных в z. Вычислите коэффициенты корреляции.

[rho,pval] = partialcorr(x,z)
rho = 3×3

    1.0000    0.1300    0.0462
    0.1300    1.0000    0.0012
    0.0462    0.0012    1.0000

pval = 3×3

         0    0.2044    0.6532
    0.2044         0    0.9903
    0.6532    0.9903         0

Большие значения в pval указывают на отсутствие значительной корреляции между возрастом и измерением артериального давления после контроля пола, статуса курения и веса.

Для более четкого отображения создайте таблицы с соответствующими метками переменных и строк.

rho = array2table(rho, ...
    'VariableNames',{'Age','BPTop','BPBottom'},...
    'RowNames',{'Age','BPTop','BPBottom'});

pval = array2table(pval, ...
    'VariableNames',{'Age','BPTop','BPBottom'},...
    'RowNames',{'Age','BPTop','BPBottom'});

disp('Partial Correlation Coefficients')
Partial Correlation Coefficients
disp(rho)
                  Age         BPTop      BPBottom 
                ________    _________    _________

    Age                1         0.13     0.046202
    BPTop           0.13            1    0.0012475
    BPBottom    0.046202    0.0012475            1
disp('p-values')
p-values
disp(pval)
                  Age       BPTop     BPBottom
                _______    _______    ________

    Age               0    0.20438    0.65316 
    BPTop       0.20438          0    0.99032 
    BPBottom    0.65316    0.99032          0 

Тест на частичную корреляцию между парами переменных в x и y входные матрицы, в то время как управление для эффектов третьего набора переменных.

Загрузите выборочные данные. Преобразование полов в hospital.Sex в идентификаторы числовых групп.

load hospital;
hospital.SexID = grp2idx(hospital.Sex);

Создайте три матрицы, содержащие выборочные данные.

x = [hospital.BloodPressure];
y = [hospital.Weight hospital.Age];
z = [hospital.SexID hospital.Smoker];

partialcorr может проверить частичную корреляцию между парами переменных в x (сестрическое и диастолическое измерения артериального давления) и y (вес и возраст), с одновременным управлением для переменных в z (пол и статус курения). Измерения для BloodPressure содержатся в двух столбцах: В первом столбце содержится верхний (systolic) номер, а во втором - нижний (diastolic) номер. partialcorr рассматривает каждый столбец как отдельную переменную.

Тест на частичную корреляцию между парами переменных в x и y, с одновременным управлением эффектами переменных в z. Вычислите коэффициенты корреляции.

[rho,pval] = partialcorr(x,y,z)
rho = 2×2

   -0.0257    0.1289
    0.0292    0.0472

pval = 2×2

    0.8018    0.2058
    0.7756    0.6442

Результаты в pval указывают, что после контроля за полом и статусом курения не существует значительной корреляции между измерениями артериального давления пациента и весом или возрастом этого пациента.

Для более четкого отображения создайте таблицы с соответствующими метками переменных и строк.

rho = array2table(rho, ...
    'RowNames',{'BPTop','BPBottom'},...
    'VariableNames',{'Weight','Age'});

pval = array2table(pval, ...
    'RowNames',{'BPTop','BPBottom'},...
    'VariableNames',{'Weight','Age'});

disp('Partial Correlation Coefficients')
Partial Correlation Coefficients
disp(rho)
                 Weight       Age   
                ________    ________

    BPTop       -0.02568     0.12893
    BPBottom    0.029168    0.047226
disp('p-values')
p-values
disp(pval)
                Weight       Age  
                _______    _______

    BPTop       0.80182     0.2058
    BPBottom    0.77556    0.64424

Протестируйте гипотезу о том, что пары переменных не имеют корреляции, против альтернативной гипотезы о том, что корреляция больше 0.

Загрузите выборочные данные. Преобразование полов в hospital.Sex в идентификаторы числовых групп.

load hospital;
hospital.SexID = grp2idx(hospital.Sex);

Создайте три матрицы, содержащие выборочные данные.

x = [hospital.BloodPressure];
y = [hospital.Weight hospital.Age];
z = [hospital.SexID hospital.Smoker];

partialcorr может проверить частичную корреляцию между парами переменных в x (сестрическое и диастолическое измерения артериального давления) и y (вес и возраст), с одновременным управлением для переменных в z (пол и статус курения). Измерения для BloodPressure содержатся в двух столбцах: В первом столбце содержится верхний (systolic) номер, а во втором - нижний (diastolic) номер. partialcorr рассматривает каждый столбец как отдельную переменную.

Вычислите коэффициенты корреляции с помощью правохвостого теста.

[rho,pval] = partialcorr(x,y,z,'Tail','right')
rho = 2×2

   -0.0257    0.1289
    0.0292    0.0472

pval = 2×2

    0.5991    0.1029
    0.3878    0.3221

Результаты в pval указать, что partialcorr не отвергает нулевую гипотезу ненулевых корреляций между переменными в x и y, после управления переменными в z, когда альтернативная гипотеза заключается в том, что корреляции больше 0.

Для более четкого отображения создайте таблицы с соответствующими метками переменных и строк.

rho = array2table(rho, ...
    'RowNames',{'BPTop','BPBottom'},...
    'VariableNames',{'Weight','Age'});

pval = array2table(pval, ...
    'RowNames',{'BPTop','BPBottom'},...
    'VariableNames',{'Weight','Age'});

disp('Partial Correlation Coefficients')
Partial Correlation Coefficients
disp(rho)
                 Weight       Age   
                ________    ________

    BPTop       -0.02568     0.12893
    BPBottom    0.029168    0.047226
disp('p-values')
p-values
disp(pval)
                Weight       Age  
                _______    _______

    BPTop       0.59909     0.1029
    BPBottom    0.38778    0.32212

Входные параметры

свернуть все

Матрица данных, заданная как n -by- p x матрица. Строки x соответствуют наблюдениям, а столбцы соответствуют переменным.

Типы данных: single | double

Матрица данных, заданная как n -by p y матрица. Строки y соответствуют наблюдениям, а столбцы соответствуют переменным.

Типы данных: single | double

Матрица данных, заданная как n -by- p z матрица. Строки z соответствуют наблюдениям, а столбцы - переменным.

Типы данных: single | double

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Type','Spearman','Rows','complete' вычисляет частичные корреляции Spearman, используя только данные в строках, которые не содержат отсутствующих значений.

Тип частичных корреляций для вычисления, заданный как разделенная разделенными запятой парами, состоящая из 'Type' и одно из следующих.

'Pearson'Вычислите частичные корреляции Пирсона (линейные).
'Spearman'Вычислите частичные корреляции Спирмана (ранга).

Пример: 'Type','Spearman'

Строки для использования в расчетах, заданные как разделенная разделенными запятой парами, состоящая из 'Rows' и одно из следующих.

'all'Используйте все строки входов независимо от отсутствующих значений (NaNс).
'complete'Используйте только строки входов без отсутствующих значений.
'pairwise'Вычислите rho(i,j) использование строк без отсутствующих значений в столбце i или j.

Пример: 'Rows','complete'

Альтернативная гипотеза для проверки, заданная как разделенная разделенными запятой парами, состоящая из 'Tail' и одно из следующих.

'both'Проверьте альтернативную гипотезу, что корреляция не 0.
'right'Протестируйте альтернативную гипотезу о том, что корреляция больше 0.
'left'Протестируйте альтернативную гипотезу, что корреляция меньше 0.

Пример: 'Tail','right'

Выходные аргументы

свернуть все

Выборка линейных коэффициентов частичной корреляции, возвращенная в виде матрицы.

  • Если вы вводите только x матрица, rho - симметричная p x-by- p x-матрица. (i, j) -я запись является выборкой линейной частичной корреляцией между i-м и j-м столбцами в x.

  • Если вы вводите x и z матрицы, rho - симметричная p x-by- p x-матрица. (i, j) -я запись является выборкой линейной частичной корреляцией между i-м и j-м столбцами в x, управляется для переменных в z.

  • Если вы вводите x, y, и z матрицы, rho является p x-by- p y матрицы, где (i, j) -ая запись является выборкой линейной частичной корреляцией между i-м столбцом x и j-й столбец в y, управляется для переменных в z.

Если ковариационная матрица [x,z] является

S=(SxxSxzSxzTSzz),

затем матрица частичной корреляции x, управление для z, может быть определено формально как нормированная версия матрицы ковариации: S xx - (S xz S zz–1S xzT).

p - значения, возвращенные как матрица. Каждый элемент pval - p -значение для соответствующего элемента rho.

Если pval(i,j) является маленьким, тогда соответствующая частичная корреляция rho(i,j) статистически значительно отличается от 0.

partialcorr вычисляет p -значения для линейных и ранговых частичных корреляций, используя t распределение Student для преобразования корреляции. Это точно для линейной частичной корреляции, когда x и z являются нормальными, но являются приближением с большой выборкой в противном случае.

Ссылки

[1] Стюарт, Алан, К. Орд и С. Арнольд. Передовая теория статистики Кендалла. 6-е издание, том 2A, глава 28, Уайли, 2004.

[2] Фишер, Рональд А. «Распределение коэффициента частичной корреляции». Метрон 3 (1924): 329-332

См. также

| | |

Представлено до R2006a