# PropVal3 Example -- source code file propval3.r # Read and print data frame. propval = read.table("propval.txt", header=T, skip=13) cat("propval data frame:\n") print(propval) # Set seed for random number generator so everyone # gets the same results. set.seed(34839) # Select half of the rows to derive model (training), # select the other half for validation (test). s = sample(nrow(propval), size=as.integer(nrow(propval) / 2)) print(s) training = propval[s,] test = propval[-s,] cat("training data frame:\n") print(training) cat("test data frame:\n") print(test) # Obtain regression model from training set. model = lm(y ~ x2 + x3 + x5 + x8, data=training) cat("Regression model based on training data\n") print(summary(model)) # Obtain predicted values from test set. p = predict(model, newdata=test) cat("Predicted values from test dataset.\n") print(p) # Obtain residuals from test dataset. r = test$y - p cat("Residuals from test dataset:\n") print(r) # Compute PRESS statistic. sse = sum(r^2) deviations = test$y - mean(training$y) sst = sum(deviations^2) cat("R-squared for prediction:\n") print(1 - sse/sst)