Пакетирование в R - Как получить пакетную регрессию, чтобы сравнить ее с исходной моделью? - PullRequest
1 голос
/ 26 июня 2019

Я пытаюсь получить модели линейной регрессии до и после упаковки.Как бы я это сделал?И как бы я упаковал каждую модель отдельно?

Я хотел бы иметь 6 моделей для моих шести независимых переменных (все, кроме y), которые я мог бы сравнить (после упаковки в мешки) с моими начальными моделями.

Я пытался сократить мой выборочный набор только до переменных y и k, но это не сработало.Я также попытался изменить длину делителя, но это не повлияло на мой желаемый результат.

### First Part ###
y<-c(3.687,6.267,5.778,6.041,4.968,5.934)
k<-c(8.8,18,15,16.7,12.3,16.6)
g<-c(6.6,19,15.3,18.5,10,19.6)
c<-c(10.5,17.2,16,15.5,14.2,14.8)
s<-c(9.4,19.5,15.8,17.6,11.6,18)
a<-c(7,18.4,14.2,17.2,9.6,17.6)
b<-c(8.5,18.4,15.3,17.1,11.5,17.3)
lm_fit<-lm(y~k+g+c+s+a+b)
summary(lm_fit)
### Second Part ###
all_data<-data.frame(y,k,g,c,s,a,b)
positions <- sample(nrow(all_data),size=floor((nrow(all_data)/4)*3))
training<- all_data[positions,]
testing<- all_data[-positions,]
lm_fit<-lm(y~k+g+c+s+a+b,data=training)
predictions<-predict(lm_fit,newdata=testing)
error<-sqrt((sum((testing$y-predictions)^2))/nrow(testing))
### Third Part ###
library(foreach)
library(doParallel)
cl<-makeCluster(4)
registerDoParallel(cl)
length_divisor<-3
iterations<-100
predictions<-foreach(m=1:iterations,.combine=cbind) %dopar% {
training_positions <- sample(nrow(training), size=floor((nrow(training)/length_divisor)))
train_pos<-1:nrow(training) %in% training_positions
lm_fit<-lm(y~k+g+c+s+a+b,data=training[train_pos,])
predict(lm_fit,newdata=testing)
}
predictions<-rowMeans(predictions)
error<-sqrt((sum((testing$y-predictions)^2))/nrow(testing))
stopCluster(cl)

Я ожидал, что сначала у меня будет 6 линейных моделей, в первом сегменте кода, который работал как ожидалось, но после суммирования я толькоесть 1 модель?И у меня нет никакого способа сравнить модели друг с другом, так как не существует никакого значения r или p, которое их проверяет, просто неоднозначное значение ошибки.Кто-нибудь будет достаточно хорош, чтобы помочь мне?Спасибо !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...