Re: linear regression with errors in both variables
- To: mathgroup at smc.vnet.net
- Subject: [mg96299] Re: [mg96281] linear regression with errors in both variables
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Wed, 11 Feb 2009 05:19:39 -0500 (EST)
- References: <200902101057.FAA10340@smc.vnet.net>
- Reply-to: drmajorbob at longhorns.com
Here are three solvers, applied to the following data. data = Flatten[ Table[{x + 0.5 RandomReal[], y + 0.7 RandomReal[], .2 x + .3 y + .4 RandomReal[]}, {x, 1, 20}, {y, 1, 30}], 1]; xy = data[[All, {1, 2}]]; z = data[[All, -1]]; LeastSquares[xy, z] {0.200423, 0.302076} FindFit[data, a x + b y, {a, b}, {x, y}] {a -> 0.200423, b -> 0.302076} lmf = LinearModelFit[data, {x, y}, {x, y}]; Normal[lmf] 0.038069 + 0.198848 x + 0.30105 y They all do the same thing, depending on whether you ask for a constant term or not. What if we explicitly KNOW, however, that x, y, and z had specific error standard deviations, in this case 0.2, 0.3, and 0.4? Surely unequal variances make a difference? In that case we could scale each variable to make all error variances the same, then solve the transformed problem: normData = #/{.2, .3, .4} & /@ data; normFit = FindFit[normData, a x + b y, {a, b}, {x, y}] {a -> 0.100211, b -> 0.226557} And then we'd correct a and b to UNDO the transformation we made: .4/{.2, .3} {a, b} /. normFit {0.200423, 0.302076} But as you see, this changes nothing. Bobby On Tue, 10 Feb 2009 04:57:01 -0600, Joerg <schaber at biologie.hu-berlin.de> wrote: > Hi, > > I want to test the hypothesis that my data > follows a known simple linear relationship, > y = a + bx. However, I have (known) measurements > errors in both the y and the x values. > > I suppose just a simple linear regression > does not do here. > > Any suggestions how do test this correctly? > > Thanks, > > joerg > -- DrMajorBob at longhorns.com
- References:
- linear regression with errors in both variables
- From: Joerg <schaber@biologie.hu-berlin.de>
- linear regression with errors in both variables