Полифорическая корреляция и ДИ

Вопрос или проблема

Я пытаюсь вычислить некоторые полихорические корреляции (воспроизводимый код здесь)

library(polycor)
Var1 <- (c(1,2,3,1,2,2,3,2,2,1,2))
Var2 <- (c(2,2,3,1,2,1,3,2,2,1,2))
        
df <- as.data.frame(cbind(Var1, Var2))


polychor(df$Var1,df$Var2)

Тем не менее, мне также нужны доверительные интервалы, но я не могу их вычислить. Я вычислил полихорические корреляции с помощью пакета polycor. Я нашел несколько пакетов, таких как ci.rpc, но они не работают в моей версии R.

Кто-нибудь знает, как вычислить ДИ для полихорических корреляций? Может быть, с использованием бутстрепа?

Большое спасибо заранее.

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

library(polycor)
library(boot)
Var1 <- (c(1,2,3,1,2,2,3,2,2,1,2))
Var2 <- (c(2,2,3,1,2,1,3,2,2,1,2))

df <- as.data.frame(cbind(Var1, Var2))
polychor(df$Var1,df$Var2)

# Функция для вычисления полихорической корреляции
polychoric_correlation <- function(data, indices) {
  sample_data <- data[indices, ]  # повторная выборка данных
  return(polychor(sample_data$Var1, sample_data$Var2))
}

# Бутстрепирование
set.seed(123)  # для воспроизводимости
results <- boot(data = df, statistic = polychoric_correlation, R = 1000)

# Доверительные интервалы
boot.ci(results, type = "perc")

Результат:

ВЫЧИСЛЕНИЯ ДОВЕРИТЕЛЬНЫХ ИНТЕРВАЛОВ БУТСТРАПА
На основе 997 бутстрап-репликатов

ЗВОНОК : 
boot.ci(boot.out = results, type = "perc")

Интервалы : 
Уровень     Перцентиль     
95%   ( 0.4239,  0.9998 )  
Вычисления и интервалы на оригинальной шкале

Кроме того, если у вас возникли проблемы с установкой библиотек, я рекомендую обновить вашу версию R и RStudio
https://posit.co/download/rstudio-desktop/

Ответ или решение

Полихорическая корреляция и доверительные интервалы: Подробное руководство

Полихорическая корреляция – это статистическая мера, используемая для оценки корреляции между двумя латентными (не наблюдаемыми) переменными, представляемыми в виде категориальных значений. Ваша задача заключается в том, чтобы рассчитать полихорическую корреляцию между двумя переменными с использованием пакета polycor в R, а также получить доверительные интервалы для оценки стабильности полученного значения корреляции.

1. Установка необходимых библиотек

Если у вас еще не установлены необходимые пакеты, то начните с их установки:

install.packages("polycor")
install.packages("boot")

2. Подготовка данных

Прежде чем выполнять расчеты, создайте ваш дата-фрейм. В вашем случае переменные Var1 и Var2 инициализируются следующим образом:

library(polycor)
library(boot)

# Исходные данные
Var1 <- c(1, 2, 3, 1, 2, 2, 3, 2, 2, 1, 2)
Var2 <- c(2, 2, 3, 1, 2, 1, 3, 2, 2, 1, 2)

df <- as.data.frame(cbind(Var1, Var2))

3. Расчет полихорической корреляции

Теперь вы можете использовать функцию polychor для расчета корреляции:

correlation <- polychor(df$Var1, df$Var2)
print(correlation)

4. Расчет доверительных интервалов с помощью бутстрэпинга

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

# Функция для вычисления полихорической корреляции
polychoric_correlation <- function(data, indices) {
  sample_data <- data[indices, ]  # повторная выборка данных
  return(polychor(sample_data$Var1, sample_data$Var2))
}

# Бутстрэпинг
set.seed(123)  # для воспроизводимости
results <- boot(data = df, statistic = polychoric_correlation, R = 1000)

# Доверительные интервалы
ci <- boot.ci(results, type = "perc")
print(ci)

5. Анализ результатов

После выполнения кода, вы получите вывод, отображающий доверительный интервал для полихорической корреляции. Обычно он выглядит так:

BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 997 bootstrap replicates
...
Intervals: 
Level     Percentile     
95%   (0.4239, 0.9998)

Этот результат говорит о том, что вы можете быть уверены на 95%, что истинное значение полихорической корреляции находится в пределах от 0.4239 до 0.9998.

6. Обновление R и RStudio

Если у вас возникли проблемы с установкой библиотек, рекомендуется обновить вашу версию R и RStudio. Вы можете загрузить последнюю версию здесь.


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

Оцените материал
Добавить комментарий

Капча загружается...