2016-08-31 16 views
0

следующее сообщение появляется во время работы DiceKriging (в R) с полным 2 polynamial порядка (2D):DiceKriging/Full второго порядка Полином

Ошибка в model.frame.default (объект, данные, xlev = xlev):
Variablenlängen Синд unterschiedlich (gefunden für 'I (входы [1]^2)')

В английском языке:

переменной длины которых отличаются (найдено FO г 'I (входы [1]^2)')

Сценарий:

#Modeling 

    xa<-c(1,2,3,4,5,6) 
    xb<-c(1,2,3,4,5,6) 
    inputs<-expand.grid(xa,xb) 
    output<-c(1,4,7,18,23,35,1,4,9,18,23,35,1,4,7,18,1,35,1,4,7,18,35,35,1,4,7,18,23,35,1,4,7,18,23,35) 
    m2 <- km(formula = ~.^2 + I(inputs[,1]^2) + I(inputs[,2]^2), design = data.frame(x = inputs), response = output) 

#prediction 

    x11 <- seq(1,6, by = 0.1) 
    x22 <- seq(1,6, by = 0.1) 
    DESIGNX <- expand.grid(x11, x22) 
    newdata <- data.frame(x = DESIGNX) 
    DESIGNY <- predict(m2, newdata, "UK")$mean 

#Error in model.frame.default(object, data, xlev = xlev) : 
# variable lengths differ (found for 'I(inputs[, 1]^2)') 
+0

Пожалуйста перевести сообщение об ошибке на английском языке. – Sergey

+0

Добавлен перевод в тело сообщения – Prune

ответ

1

При использовании, дизайн = data.frame (х = входы), это создать data.frame с имена столбцов x.Var1 и x.Var2. Используя эти имена в формуле решает эту проблему:

m2 <- km(formula = ~.^2 + I(x.Var1^2) + I(x.Var2^2), design = data.frame(x = inputs), response = output) 

Это может быть лучше определить свои собственные имена, и повторное использование те же имена в NewData:

design <- data.frame(inputs); names(design) <- c("x1", "x2") 
m2 <- km(formula = ~.^2 + I(x1^2) + I(x2^2), design = design, response = output) 

newdata <- data.frame(DESIGNX); names(newdata) <- names(design) 
DESIGNY <- predict(m2, newdata, "UK")$mean