Weights option to Regress command not behaving as expected
- To: mathgroup at smc.vnet.net
- Subject: [mg70804] Weights option to Regress command not behaving as expected
- From: Stern <nycstern at gmail.com>
- Date: Sat, 28 Oct 2006 05:21:42 -0400 (EDT)
- References: <c2baae590610041434g12698b38uef586f9c10381b1d@mail.gmail.com>
I am looking to run regressions to fit a curve to a time series, and I want older data to weigh less in the fitting than newer data does. However, I can't seem to make this work as expected. For the sake of example, imagine 100 periods with a binary time series -- it's 0 until time 50, then 1 until time 100. binaryjumpdata = Transpose[{Table[x,{x,1,100}],Flatten[Union[{Table[0,{50}],Table[1,{50}]}]]}]; simplefit = BestFit/.Regress[binaryjumpdata,{1,x},x,RegressionReport\[Rule]{BestFit}]; Out = -0.257576+0.0150015 x Fine. Now, compare the following two weighting functions: forwardweights = Table[1/n, {n, 1, 100}]); backweights = Table[1/(100-n+1), {n, 1, 100}]); forwardweights drops from 1 to .01, while backweights runs the other way, from .01 to 1. Applying these two weighting lists to the binaryjumpdata curve and running the Regress function *should* produce different best fit line. Forwardweights should produce a lower line, and backweights should produce a higher one. However, weightedfit = BestFit/.Regress[binaryjumpdata,{1,x},x,RegressionReport\[Rule]{BestFit}, Weights->forwardweights] and reverseweightedfit = BestFit/.Regress[binaryjumpdata,{1,x},x,RegressionReport\[Rule]{BestFit}, Weights\[Rule]backweights] The answer is different from that of the unweighted series, as expected, but both the forward and reverse application of the weights produce the exact same output -- -0.0941409+0.0117652 x Clearly, the Weights command is not doing what I expect. What am I missing? Thanks in advance for any help. Michael Stern