Rで多重回帰-GAMを使用して予測を予測する際に問題があります。目的は、さまざまな独立変数とダミー変数を使用して従属変数の予測を予測することであり、テストデータとトレーニングデータに分割している約2年以上のデータがあります. しかし、従属変数を予測している間、それはマイナスで予測します。これは間違っています。従属変数と独立変数の両方の入力として与えられたデータは、負の値を持ちません。従属変数 (予測される) は、通常、ほとんどが 0 から 25 の間の小さな値です。因子として使用される独立変数は、0 から 20 と低いものはほとんどなく、数百万単位のものはほとんどありません。
誰かがこれについて私を助けることができますか? 何が問題で、どうすれば修正できますか? 前もって感謝します。
@Oliver - 私が使用しているコード:
setwd("C:/Users/11th Aug")
ImpZs <- read.table("Train2.csv",sep=",",quote="\"",header=TRUE)
ImpZs <- ImpZs[complete.cases(ImpZs),]
PredZs <- read.table("Test2.csv",sep=",",quote="\"",header=TRUE)
library(base)
Zs <- unique(ImpZs$Z)
attach(PredZs)
attach(ImpZs)
ZsPred <- unique(PredZs$Z)
length(ZsPred)
bP <- 1
PGW2 <- data.frame(cbind(bP,1))
GResults1 <- data.frame(cbind(b,summary(GAM)$adj.r.squared,Accur))
Predict <- Accuracy
for (i in 1:length(Zs)){
b <- Zs[i]
temp <- ImpZs[ImpZs$Z==Zs[i],]
temp <- temp[complete.cases(temp),]
attach(temp)
GAM <- lm(X~ns(TU,df=10)+ns(OU,df=10)+ ns(TPO,df=9)+ ns(OPO,df=9)+ ns(XT,df=5)+ V + Oct + Nov+ Dec +Jan+Feb + Mar +Apr+May+June+July+ Aug+ Sep+ WK1+ WK2 +WK3 +WK4+WK5+Year)
Accuracy <- data.frame(cbind(b,round(GAM$fitted,digits=1),X, Week))
Predict <- rbind(Predict,Accuracy)
Accur <- round((1-(sum(abs((round((GAM$fitted),digits=0))-(X))))/sum(X)),digits=2)
t1 <- data.frame(cbind(b,summary(GAM)$adj.r.squared,Accur))
GResults1 <- rbind(GResults1,t1)
predP <- PredZs[PredZs$Z==Zs[i],]
bP <- Zs[i]
AG <- predict(GAM, newdata = predP , type = "response", se.fit = TRUE)
PGW1 <- data.frame(cbind(bP,AG$fit))
PGW2 <- rbind(PGW2,PGW1)
}