regresion potencial polinomial lineal grafica exponencial curva ajuste javascript math d3.js

javascript - polinomial - regresion potencial



¿Cómo puedo usar d3.js para crear una línea de regresión de tendencia/exponencial? (1)

Intento crear una línea curva que muestre una tendencia en los datos en un gráfico, pero no puedo entender cómo generar los puntos de datos necesarios, similar al segundo gráfico en esta imagen:

Toda la documentación y los ejemplos que encuentro usan matemáticas que se me pasan por la cabeza, cualquier pseudocódigo sería genial.


Pude trazar una línea de regresión exponencial con el siguiente código:

function square(x){return Math.pow(x,2);}; function array_sum(arr){ var total = 0; arr.forEach(function(d){total+=d;}); return total; } function exp_regression(Y){ var n = Y.length; var X = d3.range(1,n+1); var sum_x = array_sum(X); var sum_y = array_sum(Y); var y_mean = array_sum(Y) / n; var log_y = Y.map(function(d){return Math.log(d)}); var x_squared = X.map(function(d){return square(d)}); var sum_x_squared = array_sum(x_squared); var sum_log_y = array_sum(log_y); var x_log_y = X.map(function(d,i){return d*log_y[i]}); var sum_x_log_y = array_sum(x_log_y); a = (sum_log_y*sum_x_squared - sum_x*sum_x_log_y) / (n * sum_x_squared - square(sum_x)); b = (n * sum_x_log_y - sum_x*sum_log_y) / (n * sum_x_squared - square(sum_x)); var y_fit = []; X.forEach(function(x){ y_fit.push(Math.exp(a)*Math.exp(b*x)); }); return y_fit; }