program warpregf; {First written on November 11, 1994; last revised November 11, 1994. Authors: Isaias Hazarmabeth Salgado-Ugarte, Makoto Shimizu and Toru Taniuchi. This version do not display results to screen, instead write them to a text file in order to be used by Stata's command "infile" as a part of a Stata's ado file (warpreg.ado). This Pascal program performs Nayarada-Watson Nonparametric regression employing Haerdle's WARPing approximation using modified algorithms taken from Haerdle (1991) "Smoothing Techniques with Implementations in S. Springer-Verlag Series in Statistics New York} const maxsize = 1000; maxsize2 = 1000; {it is a really big limit!} type vector = array[0..maxsize] of real; vectorint = array[0..maxsize2] of integer; var indexstart,indexend,nl,n,i,M,numbin,kerneltype,j : integer; start, delta,h,origin,maxval,minval : real; bin,frequ,index : vectorint; x,y,ysum,kwe,fm,rm,mm,midval : vector; inpval,data,resul : text; procedure InputValues; begin assign(data,'_data2.raw'); reset(data); i:=1; while (not eof(data)) do begin read(data,y[i],x[i]); i:=i+1; end; close(data); n:=i-2; assign(inpval,'_inpval.raw'); reset(inpval); read(inpval,h,M,kerneltype); close(inpval); end; procedure InitialCalc; var maxnoemp,ia,ib: integer; begin maxval:=x[n]; minval:=x[1]; if kerneltype=6 then h:=4*h; delta:= h/M; start:=minval-h-delta*0.1; if (start<0) then origin:=(round((start/delta)-0.5)-0.5)*delta else origin:=(trunc(start/delta)-0.5)*delta; numbin:=trunc(((maxval+h+delta*0.1-origin)/delta)+0.5)+1; if (n+1