exponenta event banner

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];

x матрица содержит переменные для проверки частичной корреляции. z матрица содержит переменные для управления. Измерения для BloodPressure содержатся в двух столбцах: Первый столбец содержит верхнее (систолическое) число, а второй столбец содержит нижнее (диастолическое) число. 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 содержатся в двух столбцах: Первый столбец содержит верхнее (систолическое) число, а второй столбец содержит нижнее (диастолическое) число. 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 содержатся в двух столбцах: Первый столбец содержит верхнее (систолическое) число, а второй столбец содержит нижнее (диастолическое) число. 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-px. Строки x соответствуют наблюдениям, а столбцы - переменным.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

S = (SxxSxzSxzTSzz),

затем частичная корреляционная матрица x, управление для z, может быть определён формально как нормализованная версия ковариационной матрицы: Sxx - (SxzSzz-1SxzT).

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

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

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

Ссылки

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

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

См. также

| | |

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