私はRコードを使って時系列の残差を予測しようとしています。サポートベクトルマシン - Rコード - 時系列の残差予測
# Load the data from the csv file
dataDirectory <- "C://"
data <- read.csv(paste(dataDirectory, "Data_SVM_Test.csv", sep=""),sep=";", header = TRUE)
head(data)
# Plot the data
plot(data, pch=16)
# Create a linear regression model
model <- lm(Residuals ~ Observation, data)
# Add the fitted line
abline(model)
predictedY <- predict(model, data)
# display the predictions
points(data$Observation, predictedY, col = "blue", pch=4)
# This function will compute the RMSE
rmse <- function(error)
{
sqrt(mean(error^2))
}
error <- model$residuals # same as data$Y - predictedY
predictionRMSE <- rmse(error) # 5.70377
plot(data, pch=16)
plot.new()
# svr model ==============================================
if(require(e1071)){
model <- svm(Residuals ~ Observation , data)
predictedY <- predict(model, data)
points(data$Observation, predictedY, col = "red", pch=4)
# /!\ this time svrModel$residuals is not the same as data$Y - predictedY
# so we compute the error like this
error <- data$Residuals - predictedY
svrPredictionRMSE <- rmse(error) # 3.157061
}
I:私はRを使用してサポートベクトルマシンを構築しています予測のために
Observation Residuals
1 -0,087527458
2 -0,06907199
3 -0,066604145
4 -0,07796713
5 -0,081723932
6 -0,094046868
7 -0,101535816
8 -0,101884203
9 -0,11131246
10 -0,092548176
:私のデータセットは、次の2つの列を(私は最初の10行でサンプルを入れます)持っています任意の出力せずに、私は次のエラーメッセージとを取得しています上記のコードを実行します。
Warning message:
In Ops.factor(data$Residuals, predictedY) : ‘-’ not meaningful for factors
誰もがこのエラーを解決する方法のアイデアを持っていますか?
多くの感謝!
あなたの答えについて多くの感謝。だから、列の残差を数値に変換することをお勧めしますか?質問の初めに私のデータセットを入れました:) –
svmで予測したときに 'predictY'がクラス係数になるので、' error < - data $ Residuals - as.numeric(predictedY) 'を使うことをお勧めします。 – LyzandeR