HarryStevens / d3-regression

Calculate statistical regressions from two-dimensional data.
https://observablehq.com/collection/@harrystevens/d3-regression
BSD 3-Clause "New" or "Revised" License
167 stars 16 forks source link

NaNs when using regressionPow #34

Open hasnainali96 opened 3 years ago

hasnainali96 commented 3 years ago

I’m trying to run a power law regression using the data in the file attached datapoints.txt

const d3 = require('d3-regression')

const regressionGenerator = d3.regressionPow()
      .x(d => d.x)
      .y(d => Number(d.y));
const output = regressionGenerator(data)
console.log(output)

which returns some NaNs, suggesting something is going wrong in the regression

[

  [ 8, NaN ],
  [ 26361, NaN ],
  a: NaN,
  b: NaN,
  predict: [Function: fn],
  rSquared: NaN
]

Is there a reason I'm seeing NaNs? What's the recommended way forward? Can we filter out certain data points to prevent this?

hasnainali96 commented 3 years ago

realised that this is because there are some y values which are 0 in the data, and NaNs are returned sinceln(0) is undefined.