Задать вопрос
@baphik
Психолог-исследователь

Как написать код для анализа медаций и модераций для психологического исследования?

Я провожу научное исследование. Хочу посмотреть, являются ли стратегии цифрового поведения медиатором или модератором для влияния особенностей цифрового поведения на показатели благополучия пользователя. Решил сделать анализ через R. Написал код. Но столкнулся с двумя проблемами: не понимаю, правильно ли я интерпретирую полученные результаты и не знаю, как сделать красивые сводные графики, чтобы визуализировать результаты. Оговорюсь заранее: у меня есть только базовые навыки работы в R, только начал его учить. Код писал с очень большой помощью дипсика
Вот сам код. Это для удовлетворенности и тревожности.
data <- read.csv("vediations для R.csv", stringsAsFactors = FALSE)

data$strategy <- as.factor(data$strategy)
med_model <- glm(strategy ~ Preference + Regulation,
                 data = data,
                 family = binomial(link = "logit"))
data$Satisfaction_adj <- data$Satisfaction + 0.01
out_model_satisfaction <- glm(Satisfaction_adj ~ Preference + Regulation + strategy,
                              data = data,
                              family = Gamma(link = "identity"))
out_model_anxiety <- glm(Anxiety ~ Preference + Regulation + strategy,
                         data = data,
                         family = quasipoisson(link = "log"))
set.seed(123)
med_results_sat <- mediate(med_model, out_model_satisfaction,
                           treat = "Preference",
                           mediator = "strategy",
                           robustSE = TRUE,
                           sims = 1000)
summary(med_results_sat)
med_results_anx <- mediate(med_model, out_model_anxiety,
                           treat = "Preference",
                           mediator = "strategy",
                           robustSE = TRUE,
                           sims = 1000)
summary(med_results_anx)
plot(med_results_sat, main = "Медиационный анализ: Satisfaction")
plot(med_results_anx, main = "Медиационный анализ: Anxiety")
problem_use_vars <- c("Preference", "Regulation", "Absorption", 
                      "Compulsiveness", "Negativeconsequences", 
                      "Problemsolving")
med_formula <- as.formula(paste("strategy ~", paste(problem_use_vars, collapse = " + ")))
med_model_full <- glm(med_formula,
                      data = data,
                      family = binomial(link = "logit"))
data$Satisfaction_adj <- data$Satisfaction + 0.01
out_formula_sat <- as.formula(paste("Satisfaction_adj ~", 
                                    paste(problem_use_vars, collapse = " + "),
                                    "+ strategy"))
out_model_sat_full <- glm(out_formula_sat,
                          data = data,
                          family = Gamma(link = "identity"))
out_formula_anx <- as.formula(paste("Anxiety ~", 
                                    paste(problem_use_vars, collapse = " + "),
                                    "+ strategy"))
out_model_anx_full <- glm(out_formula_anx,
                          data = data,
                          family = quasipoisson(link = "log"))
summary(med_model_full)
summary(out_model_sat_full)
summary(out_model_anx_full)

model_interaction <- glm(Satisfaction_adj ~ Preference * strategy + 
                           Regulation * strategy + Absorption * strategy + Compulsiveness * strategy + Negativeconsequences * strategy,
                         data = data, family = Gamma(link = "identity"))
summary(model_interaction)
model_anxiety_interaction <- glm(Anxiety ~ Preference*strategy + 
                                   Regulation*strategy + Absorption*strategy+ Compulsiveness * strategy + Negativeconsequences * strategy,,
                                 data = data, family = quasipoisson(link = "log"))
summary(model_anxiety_interaction)
<code> 

А это для глобального самоотношения и чувствительности: 
med_model <- glm(strategy ~ Preference + Regulation,
                 data = data,
                 family = binomial(link = "logit"))
data$GSE_adj <- data$GSE + 0.01
data$Sens_adj <- data$Sens + 0.01
out_model_GSE <- glm(GSE_adj ~ Preference + Regulation + strategy,
                     data = data,
                     family = Gamma(link = "log"))
out_model_Sens <- glm(Sens_adj ~ Preference + Regulation + strategy,
                      data = data,
                      family = Gamma(link = "log"))
med_results_GSE <- mediate(med_model, out_model_GSE,
                           treat = "Preference",
                           mediator = "strategy",
                           robustSE = TRUE,
                           sims = 1000)
summary(med_results_GSE)

med_results_Sens <- mediate(med_model, out_model_Sens,
                            treat = "Preference",
                            mediator = "strategy",
                            robustSE = TRUE,
                            sims = 1000)
summary(med_results_Sens)
plot(med_results_GSE, main = "Медиационный анализ: GSE")
plot(med_results_Sens, main = "Медиационный анализ: Sens")

problem_use_vars <- c("Preference", "Regulation", "Absorption", 
                      "Compulsiveness", "Negativeconsequences", 
                      "Problemsolving")
med_formula <- as.formula(paste("strategy ~", paste(problem_use_vars, collapse = " + ")))
med_model_full <- glm(med_formula,
                      data = data,
                      family = binomial(link = "logit"))
out_formula_GSE <- as.formula(paste("GSE_adj ~", 
                                    paste(problem_use_vars, collapse = " + "),
                                    "+ strategy"))
out_model_GSE_full <- glm(out_formula_GSE,
                          data = data,
                          family = Gamma(link = "log"))
out_formula_Sens <- as.formula(paste("Sens_adj ~", 
                                     paste(problem_use_vars, collapse = " + "),
                                     "+ strategy"))
out_model_Sens_full <- glm(out_formula_Sens,
                           data = data,
                           family = Gamma(link = "log"))
summary(med_model_full)
summary(out_model_GSE_full)
summary(out_model_Sens_full)
model_interaction_GSE <- glm(GSE_adj ~ Preference * strategy + 
                               Regulation * strategy + Absorption * strategy + Compulsiveness * strategy + Negativeconsequences * strategy,
                             data = data, family = Gamma(link = "log"))
summary(model_interaction_GSE)
model_interaction_Sens <- glm(Sens_adj ~ Preference * strategy + 
                                Regulation * strategy + Absorption * strategy + Compulsiveness * strategy + Negativeconsequences * strategy,
                              data = data, family = Gamma(link = "log"))
summary(model_interaction_Sens)
  • Вопрос задан
  • 69 просмотров
Подписаться 1 Средний 4 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Бакалавриат «Финансы и анализ данных» c Финансовым университетом
    4 года
    Далее
  • SF Education
    Mini-MBA: Аналитик 2.0
    10 месяцев
    Далее
  • Специалист.ру
    Специалист по Data Science
    8 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы