Я пытаюсь использовать MCSIMEX-алгоритм для моделей ошибок измерения в пакете Simex R для исправления ошибки в скрытом назначении класса.Существует 8 скрытых классов, и я использовал средние вероятности скрытого класса для наиболее вероятного членства в классе, чтобы создать матрицу ошибок для симуляции классификационной переменной.Я реализовал анализ, используя соответствующие R-коды из этого [примера] [1].Когда я запустил анализ, я получил следующее сообщение об ошибке: «Ошибка в mcsimex (naive, mc.matrix = Data600, SIMEXvariable =« Class »): mc.matrix может содержать отрицательные значения для показателей меньше 1». Может кто-нибудь помочь сэто? Я включил некоторые фальшивые данные, чтобы дать вам представление о том, чего я пытаюсь достичь.
## Create Data set
Y = sample(x=30:100, size = 500, replace= TRUE) ## Outcome variable
Class = sample(x=1:8, size=500, replace=TRUE) #Class membership variable
X2 = sample(x=0:100, size=500, replace=TRUE)## Control variable
Data=cbind(Class, X2, Y)
Data2=as.data.frame(Data)
## Build matrix containing probabilities of most likely class membership
p6 <- matrix(c(0.852086, 0.002081, 0.145126, 0.000000, 0.000000, 0.000706, 0.000000, 0.000002,
0.016235, 0.983277, 0.000453, 0.000034, 0.000000, 0.000001, 0.000000, 0.000000,
0.001904, 0.000025, 0.992375, 0.000000, 0.000000, 0.005629, 0.000004, 0.000063,
0.000010, 0.000001, 0.073121, 0.926070, 0.000002, 0.000001, 0.000793, 0.000001,
0.000004, 0.000454, 0.005430, 0.025924, 0.926010, 0.040839, 0.000002, 0.001338,
0.007274, 0.000003, 0.000294, 0.004842, 0.000000, 0.987587, 0.000000, 0.000000,
0.000839, 0.325729, 0.270084, 0.001621, 0.000001, 0.000115, 0.401590, 0.000022,
0.000000, 0.000000, 0.000750, 0.000000, 0.000000, 0.000013, 0.000000, 0.999237),
nrow = 8, byrow=FALSE)
check.mc.matrix(list(build.mc.matrix(p6)))
dimnames(p6) <- list(levels(Data2$Class),levels(Data2$Class))
## Check Data Structure
str(Data2)
## Specify Class Variable as factor and other variables as numeric
Data2$Class=as.factor(Data2$Class)
Data2$X2= as.numeric(Data2$X2)
Data2$Y= as.numeric(Data2$Y)
##Estimate Naive model
naive=glm(Y ~., family=gaussian, data=Data2, x=T, y=T)
summary(naive)
##Model accounting for classification error
mod.Dis <- mcsimex(naive, mc.matrix = p6, SIMEXvariable = "Class")
[1]: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.503.9789&rep=rep1&type=pdf