Добавление перекоса к смоделированным данным в R - PullRequest
1 голос
/ 01 августа 2020

Я создал код для моделирования данных на основе нагрузок из двухфакторной модели (Caspi et al., 2014). Мне нужно добавить перекос на 2,0 к каждой переменной в наборе данных, чтобы смоделировать типичное распределение психопатологических симптомов в сообществе. В другой статье (Greene et al., 2019), используя R, авторы добавили этот перекос 2,0 в свои наборы данных, разработанные методом Монте-Карло (которые они разработали с помощью MPlus). Я хотел бы использовать их код, чтобы применить такой же перекос к моему набору данных, однако я не уверен, что представляют собой значения numeri c в их коде. Я предполагаю, что значения (например, 54, et c.) Указаны c для своих данных. Какие значения мне понадобятся из моих данных для ввода в код для развития перекоса 2.0? Я также хотел бы сохранить корреляции между переменными и средствами, если это возможно.

Вот мой код для разработки данных двухфакторного моделирования:

library(lavaan)
library(Rcmdr)

#creating a dataset for p + externasling(f1) and internalsing (f2), all orthogonal

n  <- 1000
p  <- rnorm(n)
ext <- rnorm(n)
int <- rnorm(n)

Alc <- .626 * ext + .397 * p + rnorm(n,0,sqrt(1 - (.626*.397)^2))
Cann <- .811 * ext + .455*p + rnorm(n,0,sqrt(1 - (.811*.455)^2))
HD <- .709 * ext + .452 * p + rnorm(n,0,sqrt(1 - (.709*.452)^2))
Tobacco <- .420 * ext + .504 * p + rnorm(n,0,sqrt(1 - (.420*.504)^2))
CD <- .691 * ext + .557 * p + rnorm(n,0,sqrt(1 - (.691*.557)^2))
Depression <- .340 * int + .835 * p + rnorm(n,0,sqrt(1 - (.340*.835)^2))
GAD <- .497 * int + .812 * p + rnorm(n,0,sqrt(1 - (.497*.812)^2))
Fears <- .441 * int + .623 * p + rnorm(n,0,sqrt(1 - (.441*.623)^2))
OCD <- .725 * p + rnorm(n,0,sqrt(1 - (.725)^2))
Mania <- .973 * p + rnorm(n,0,sqrt(1 - (.973)^2))
Schiz <- .819 * p + rnorm(n,0,sqrt(1 - (.819)^2))
bifac <- data.frame(Alc,Cann,HD,Tobacco,CD,Depression,GAD,Fears,OCD,Mania,Schiz)
rm(n,ext,int,p,Alc,Cann,HD,Tobacco,CD,Depression,GAD,Fears,OCD,Mania,Schiz)
summary(bifac)
nrow(bifac)

# Saving created data set

library("rio")
export(bifac,"Bifactor_Sim_data.csv")

Вот Грин и др. (2019) код, используемый для искажения их данных:

Преобразование асимметрии в R: для непрерывных моделей R использовался для выполнения преобразования асимметрии. Ниже представлен аннотированный синтаксис R с использованием пакета MplusAutomation (Hallquist & Wiley, 2018).

###load the library to run Mplus for continuous data simulation 

library(MplusAutomation) 

###Parameter settings for the data transformation to create skew 

cc <- -(54*sqrt(2)+81)^(1/3)
xx <- -(3+cc+9/cc)/3 
a <- exp(sqrt(log(xx))) 

###Run Mplus models 

runModels() 

###Transform all the simulated data into skewed data 

for(k in 1:500){   d <- read.table(paste('data000rep',k,'.DAT',sep=''))
   
write.table(a^d,paste('data000rep',k,'.DAT',sep=''),col.names = F,row.names = F)}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...