Просьба привести простой пример. Я в волнении! Я пробовал функцию errorest и делаю это как пример, который он дает для 10-кратного CV LDA. Но когда я использовал свои собственные данные, он просто сказал, что предсказание не является числовым. Я не знаю почему! Спасибо! Код R такой. Я хочу сделать бинарный LDA, поэтому я генерировать данные:Как выполнить CV-тест для изучения ошибки классификации LDA в R
library(MASS)
n=500
#generate x1 and x2.
Sigma=matrix(c(2,0,0,1),nrow=2,ncol=2)
#Logistic model with parameter{1,4,-2}
beta.star=c(1,4,-2)
Xtilde=mvrnorm(n=n,mu=c(0.5,2),Sigma=Sigma)
X=cbind(1,Xtilde)
z=X%*%beta.star
#pass througn an inv-logit function
pr=exp(z)/(1+exp(z))
#Simulate binary response
# The "probability of respoonse is a vector"
y=rbinom(n,1,pr)
Затем я использую LDA, чтобы получить модель:
library(MASS)
df.cv=data.frame(V1=Xtilde[,1],V2=Xtilde[,2])
exper1<-lda(y~V1+V2,data=df.d)
plda<-predict(exper1,newdata=df.cv)
Наконец, я хочу использовать резюме с -й исходными данными и см Ошибка. Я делаю это неправильно:
mypredict.lda <- function(object, newdata)
predict(object, newdata = newdata)$class
errorest(y ~ ., data=data.frame(da), model=lda,estimator ="cv", predict= as.numeric(mypredict.lda))
Что мне делать, чтобы получить ошибку с CV?
Вы определили 'mypredict.lda' как функцию. Объект не содержит прогнозируемых значений на основе вашей модели. Не пытайтесь принудительно использовать функцию 'as.numeric'. –