Как исправить: ошибка в файле check.dnode.vs.parents (узел, новый = dist [[узел]], родители = подогнанный [узел. родители]): неверные измерения для узла - PullRequest
1 голос
/ 10 июня 2019

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

Я пытался изменить размеры узла E, но мне все равно не удалось

data <- read.table('survey.txt',header = TRUE)
dag <- model2network("[A][S][E|A:S][O|E][R|E][T|O:R]")
options(repr.plot.width=6, repr.plot.height=6)
plot(dag)

введите описание изображения здесь

colnames(data) <- c("Age", "Residence", "Education", "Occupation", "Sex", "Travel")

print("Age")
pA <- round(prop.table(table(data$A)),digits = 2)
print(pA)

print("Sex")
pS <- round(prop.table(table(data$S)),digits = 2)
print(pS)

print("Occupation given Education")
pO <- round(prop.table(table(data$O,data$E),1),digits = 2)
print(pO)

print("Residence given Education")
pR <- round(prop.table(table(data$R,data$E),1),digits = 2)
print(pR)

print("Education given age and sex")
pE <- prop.table(ftable(table(data$E,data$S,data$A),1),1)
print(pE)

print("Travel given occupation and residence")
pT <- round(prop.table(ftable(table(data$O, data$T, data$R)),1),digits = 2)
print(pT)

Затем я изменяю тип результатов ниже в матрицу для каждого узла:

pA <- matrix(c(pA[1],pA[2],pA[3]),ncol=3,dimnames=list(NULL,c("ADULT","OLD", "YOUNG")))# 
pS <- matrix(c(pS[1],pS[2]), ncol=1,dimnames=list(c("F", "M"),NULL))
pO <- matrix(c(pO[1],pO[3],pO[2],pO[4]), ncol=2,dimnames=list(c("EMP", "SELF"), c("HIGH", "UNI")))
pR <- matrix(c(pR[1],pR[3],pR[2],pR[4]), ncol=2,dimnames=list(c("BIG", "SMALL"), c("HIGH", "UNI")))

pT <- c(pT[1], pT[7],pT[4],pT[10],pT[3],pT[9],pT[6],pT[12], pT[2],pT[8],pT[5],pT[11])
dim(pT) <- c(2,2,3)
dimnames(pT) <- list("R"=c("BIG", "SMALL"),"O"=c("EMP", "SELF"), "T"=c("CAR", "TRAIN","OTHER")) #,

pE <- c(pE[1], pE[5],pE[9],pE[2],pE[6],pE[10],pE[3],pE[7],pE[11],pE[4],pE[8],pE[12])
dim(pE) <- c(3,2,2)
dimnames(pE) <- list("A"=c("ADULT", "OLD", "YOUNG"),"S"=c("F", "M"),"E"=c("HIGH", "UNI")) #

Наконец я попробовал это, но у меня была следующая ошибка:

dag.disc = custom.fit(dag, dist=list(E=pE,S=pS, A=pA, O=pO, R = pR, T=pT))
Error in check.dnode.vs.parents(node, new = dist[[node]], parents = fitted[node.parents]): wrong dimensions for node E.
Traceback:

1. custom.fit(dag, dist = list(E = pE, S = pS, A = pA, O = pO, R = pR, 
 .     T = pT))
2. custom.fit.backend(x = x, dist = dist, ordinal = ordinal, debug = debug)
3. check.dnode.vs.parents(node, new = dist[[node]], parents = fitted[node.parents])
4. stop("wrong dimensions for node ", node, ".")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...