Я использую пакет nlme для изучения многоуровневых моделей и следующих примеров из учебника «Обнаружение статистики с использованием R», когда это произошло.Ошибка при использовании nlme; malformed factor
Набор данных Honeymoon Period.dat, также можно загрузить под их веб-компаньона.
require(nlme)
require(reshape2)
satisfactionData = read.delim("Honeymoon Period.dat", header = TRUE)
restructuredData<-melt(satisfactionData, id = c("Person", "Gender"), measured = c("Satisfaction_Base", "Satisfaction_6_Months", "Satisfaction_12_Months", "Satisfaction_18_Months"))
names(restructuredData)<-c("Person", "Gender", "Time", "Life_Satisfaction")
#print(restructuredData)
#restructuredData.sorted<-restructuredData[order(Person),]
intercept <-gls(Life_Satisfaction~1, data = restructuredData, method = "ML", na.action = na.exclude)
randomIntercept <-lme(Life_Satisfaction ~1, data = restructuredData, random = ~1|Person, method = "ML", na.action = na.exclude, control = list(opt="optim"))
anova(intercept, randomIntercept)
timeRI<-update(randomIntercept, .~. + Time)
timeRS<-update(timeRI, random = ~Time|Person)
ARModel<-update(timeRS, correlation = corAR1(0, form = ~Time|Person))
Ошибка произошла в этот момент, когда я пытаюсь обновить «Таймеры» модель. Ошибка заключается в следующем:
Error in as.character.factor(X[[i]], ...) : malformed factor
Любая статистика людей/программистов, которые знают, что это значит?
Хороший совет! Я немного упростил это: «changeduredData [,« Time »] <- as.numeric (реорганизованныйData [,« Time »]) - 1' Это может быть выполнено до первого определения модели:' intercept <-gls (Life_Satisfaction ~ 1 , data = реорганизованнаяДата, метод = "ML", na.action = na.exclude) 'И чем остальной код не нужно менять. –