Dear All, I am trying to simulate data for a spline/piecewise regression model. I am missing something fundamental in my simulation procedure because when I try to fit my simulated data using the Gauss-Newton method in SAS, I am getting some wacky parameter estimates. Can anyone please check my simulation code and tell me what mistake I am making in generating data for spline model? Thank you very much for your help. Regards, Nidhi Here is my code: #Set the working directory # setwd("C:/SPLINE MODEL") #Data Simulation Routine# subjects = 30 #Sets the sample of subjects for whom the data is to be generated# knot = 8 #Specifies the value of knot/change point# beta0 = 3 #Specifies the value of intercept for x <= knot# beta1 = 8 #Specifies the value of slope for x <= knot# gamma0 = 6 #Specifies the value of intercept for x > knot# gamma1 = 5 #Specifies the value of slope for x > knot# #The following intializes empty (NA) vectors# X = rep(NA,subjects) Y = rep(NA, subjects) DATA = rep(NA, subjects) #The following sample x.values from uniform distribution# X = runif(subjects,1,20) # For loop for computing y-values by comparing each x-value to the knot# for (i in 1:30) { if (X[i] <= knot) Y[i] = beta0+beta1*X[i] else Y[i] = gamma0+gamma1*X[i] } #Binding/combining the x- and y-values in one data set# DATA = cbind(X, Y) #This writes the DATA to a separate file# write.table(DATA, "SplineData.dat")
Dear All, I am trying to simulate data for a spline/piecewise regression model. I am missing something fundamental in my simulation procedure because when I try to fit my simulated data using the Gauss-Newton method in SAS, I am getting some wacky parameter estimates. Can anyone please check my simulation code and tell me what mistake I am making in generating data for spline model? Thank you very much for your help. Regards, Nidhi Here is my code: #Set the working directory # setwd("C:/SPLINE MODEL") #Data Simulation Routine# subjects = 30 #Sets the sample of subjects for whom the data is to be generated# knot = 8 #Specifies the value of knot/change point# beta0 = 3 #Specifies the value of intercept for x <= knot# beta1 = 8 #Specifies the value of slope for x <= knot# gamma0 = 6 #Specifies the value of intercept for x > knot# gamma1 = 5 #Specifies the value of slope for x > knot# #The following intializes empty (NA) vectors# X = rep(NA,subjects) Y = rep(NA, subjects) DATA = rep(NA, subjects) #The following sample x.values from uniform distribution# X = runif(subjects,1,20) # For loop for computing y-values by comparing each x-value to the knot# for (i in 1:30) { if (X[i] <= knot) Y[i] = beta0+beta1*X[i] else Y[i] = gamma0+gamma1*X[i] } #Binding/combining the x- and y-values in one data set# DATA = cbind(X, Y) #This writes the DATA to a separate file# write.table(DATA, "SplineData.dat")