Kernel regression results in diverse outputs
You have a very small number of observations (32?) and a non-trivial number of predictors. 

It is known that the cross-validation function possesses multiple local minima/maxima. If you increase the number of multistarts to, say, nmulti=100 (add this option to your call to npregbw()), you ought to see that the same results occur on each invocation of the optimization process. 

Note you can do this all in the call to npreg() and skip the bandwidth call for convenience (npreg() will call npregbw() automatically but accept the arguments intended for npregbw()). 

Also, you will get the same results if you restart R each time you run the routine (seeds are set automatically to ensure this).

model &lt;- npreg(power ~ temperature  
                     + prevday1 
                     + prevday2
                     + prev_instant1 
                     + prev_instant2 
                     + prev_2_hour,
                regtype="ll",
                bwmethod="cv.aic", 
                nmulti=100,
                data=new_tr_dat)


To see whether things are stable with respect to the number of multistarts, look at the value of the cross-validation function and summary provided. Also, you can look at partial regression plots along with resampled variability bounds via plot().

summary(model$bws)
plot(model,common.scale=FALSE,plot.errors.method="bootstrap")


Also, I note that your predictor `temperature' is discrete, so you might consider using

+ ordered(temperature)


(i.e. use a discrete support kernel). Doing so reveals that there is little signal in this model, but the same holds for a simple parametric model (adjusted r-squared is negative).

model.lm &lt;- lm(model$bws$formula)
summary(model.lm)


Hope this helps!