# Copyright (c) 2014 Takafumi Kanamori [kanamori@is.nagoya-u.ac.jp] # All rights reserved. See the file COPYING for license terms. #library(MASS) library(robustbase) source('functions.r') ## setup of sample distribution d <- 5 ## dimension of covariate variable ntrain <- 100 ## num. of observations ntest <- 1000 ## num. of test samples contam_ratio <- 0.05 ## ratio of outliers: 1-c in_sd <- 1 ## sd of target conditional distribution out_mean <- 5 ## mean of outlier distribution out_sd <- 1 ## std deviation of outlier distribution theta <- c(0,rnorm(d)) ## true regression parameter ## observations x <- matrix(rnorm(ntrain*d),ntrain,d) y <- as.vector(cbind(1,x) %*% theta) m <- sum(rbinom(ntrain,1,prob=contam_ratio)) ## num of outliers n <- ntrain-m ## number of inliers ## contamination if(m>0){ out_idx <- sample(ntrain,m) y[out_idx] <- y[out_idx] + rnorm(m,mean=out_mean,sd=out_sd) y[-out_idx] <- y[-out_idx] + rnorm(n,sd=in_sd) }else{ y <- y + rnorm(n,sd=in_sd) } ## test data xtest <- matrix(rnorm(ntest*d),ntest,d) ytest <- as.vector(cbind(1,xtest) %*% theta)+rnorm(ntest,sd=in_sd) ## estimate res <- reg_unnormalizedLSmodel(x,y,gamma=0.5) ## gamma=0.5, linear model print(res) ## print estimated result cat("RMSE =",sqrt(mean((ytest-cbind(1,xtest) %*% res$par)^2)),'\n') ## print root mean square error