Как найти инвариантность в 4 группах? - PullRequest
1 голос
/ 06 марта 2020

Я использовал этот код для нахождения различий между половыми возрастными группами:

    GeneralModel.fit = cfa(model = GeneralModel,
                           data=Invariance,
                           meanstructure = TRUE)

summary(GeneralModel.fit,
        standardized=TRUE,
        rsquare=TRUE,
        fit.measure = TRUE)

parameterestimates(GeneralModel.fit, standardized=TRUE)
fitted(GeneralModel.fit)
residuals(GeneralModel.fit)
fitmeasures(GeneralModel.fit)
modificationindices(GeneralModel.fit)

semPaths(GeneralModel.fit,
         whatLabels = "std",
         layout = "tree")

Teenagers = subset(Invariance, Group == "0")

Teenagers.fit = cfa(GeneralModel,
                     data=Teenagers,
                     meanstructure=TRUE)
summary(Teenagers.fit,
        standardized=TRUE,
        rsquare=TRUE,
        fit.measure=TRUE)

parameterestimates(Teenagers.fit, standardized = TRUE)
fitted(Teenagers.fit)
residuals(Teenagers.fit)
fitmeasures(Teenagers.fit)

semPaths(Teenagers.fit,
         whatLabels = "std",
         layout = "tree")

CollegesStudents = subset(Invariance, Group == "1")
CollegeStudents
CollegeStudents.fit = cfa(GeneralModel,
                     data=CollegeStudents,
                     meanstructure=TRUE)
summary(CollegeStudents.fit,
        standardized=TRUE,
        rsquare=TRUE,
        fit.measure=TRUE)

parameterestimates(CollegeStudents.fit, standardized = TRUE)
fitted(CollegeStudents.fit)
residuals(CollegeStudents.fit)
fitmeasures(CollegeStudents.fit)
IM <- measurementInvariance(model=GeneralModel, data=Invariance, group="Group") 

Для гендерных различий я использовал этот же метод (с разными именами, конечно).

Теперь вопрос:

Как можно изменить этот сценарий, чтобы найти неизменность для четырех групп (женщины-подростки, мужчины-подростки, женщины из колледжа и мужчины из колледжа)? Нужно ли указывать с кодами Group1="Sex" и Group2="Age Group" при создании подмножеств, например:

  • подростковые женщины: Group1 == 0, Group2 == 0
  • подростковые мужчины: Group1 == 1, Group2 == 0,
  • женщины колледжа: Group1 == 0, Group2 == 1
  • и мужчины колледжа Group1 == 1, Group2 == 1?

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

1 Ответ

1 голос
/ 08 марта 2020

Рассмотрите возможность обобщения вашего процесса в определяемом пользователем методе, а затем используйте by для запуска различного уровня подмножеств, передаваемых в метод. А поскольку некоторые подмножества могут не возвращать строк, метод обтекания в tryCatch позволяет безопасно возвращать NULL (пустой результат) при ошибке:

find_diffs <- function(df) {
    tryCatch({
        model_fit = cfa(model = GeneralModel,
                        data = df
                        meanstructure = TRUE)

        summary(model_fit,
                standardized=TRUE,
                rsquare=TRUE,
                fit.measure = TRUE)

        # NAMED LIST OF RESULTS
        results <- list(estimates = parameterestimates(model_fit, standardized=TRUE),
                        fit = fitted(model_fit),
                        residuals = residuals(model_fit),
                        fitmeasures = fitmeasures(model_fit),
                        mod_indices = modificationindices(model_fit)
                   )
        }, error = function(e) return(NULL)
    )
}

NO by

GeneralModel_fit <- find_diffs(Invariance)
# ALL RESULTS
GeneralModel_fit

# SELECT RESULTS
GeneralModel_fit$estimates
GeneralModel_fit$fit
GeneralModel_fit$residuals
...

ОДИН by ГРУППА

sex_fit_list <- by(Invariance, Invariance$Group1, find_diffs)

# WOMEN
sex_fit_list$`0`    
# MEN
sex_fit_list$`1`


age_fit_list <- by(Invariance, Invariance$Group2, find_diffs)

# TEENAGERS
age_fit_list$`0`    
# COLLEGE STUDENTS
age_fit_list$`1`

ДВА by ГРУПП

sex_and_age_fit_list <- by(Invariance, Invariance[,c("Group1", "Group2")], find_diffs)

# TEEN GIRLS
sex_and_age_fit_list[[1]]

# COLLEGE WOMEN
sex_and_age_fit_list[[2]]

# TEEN BOYS
sex_and_age_fit_list[[3]]

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