Hello
I hope that you will help me in my problem with the Nadaraya-Watson kernel 
regression estimation method (NW)  I used a simulation data and made a loop 
​​to calculate the NW estimator for the regression model 
Y=1-X+exp(-200*(X-0.5)^2)+E where, Y: the response variable,       X: the 
explanatory variable from uniform (0,1)       E: error term, i.i.d from 
normal(0,0.1) Then i calculate the MSE  But the MSE increases with increasing 
the sample size, and this is my program that i wrote it
n1=25
set.seed(4455)
E<-rnorm(n1,mean=0,sd=0.1)
X<-runif(n1, min = 0, max = 1)
mx=1-X+exp(-200*(X-0.5)^2)
Y <- mx+E
nrep <- 1000

#----------------------------------------Fixed NW
mse_rep1<-c()
for(i in 1:1500){
set.seed(i+236)
E<-rnorm(n1,mean=0,sd=0.1)
X<-runif(n1, min = 0, max = 1)
mx=1-X+exp(-200*(X-0.5)^2)
Y <- mx+E
hmax <- 2 * sqrt(var(X)) * n1^(-1/5) 
lower = 0.01 * hmax              
h<- bw.ucv(X,nb = 1000, lower=lower, upper=hmax, tol=0.1*lower)
est1 <- ksmooth(X, Y, kernel = "normal", bandwidth = h)$y
mse1<-(n1^-1)*sum((Y - est1)^2)

mse_rep1 <- cbind(mse_rep1,mse1)

dimnames(mse_rep1)<-list(c("MSE1"),paste("rep",1:i))

}
library(functional)
MSE_rep1<-mse_rep1[,apply(mse_rep1, 2, Compose(is.finite, any))]

MSE_fixedNW<- apply(MSE_rep1[1:1000], 1, mean)     #calculate the average of 
the 1000 MSEBut i got NA value first, i made 1500 replication then i choose 
1000 without NA value
When i change the sample size to 50 or 100 the MSE decrease , but more than 100 
the MSE increas. this is the main problem.
I hope I was able to clarify the problem well
Regards 
                                          
        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to