JavaScript - Usar JSON para hacer regresión lineal

 
Vista:
sin imagen de perfil

Usar JSON para hacer regresión lineal

Publicado por Carlos (2 intervenciones) el 01/12/2021 02:34:33
Holaaa, quisiera saber si me pueden echar una mano con este problema, necesito hacer una regresión lineal usando datos JSON, el JSON se ve algo así, pero con muchos más datos:

{"data":[{"bateriaalconectar":46,"fechaalconectar":"Sun Nov 28 2021 15:23:44 GMT-0300 (-03)","fechaaldesconectar":"Sun Nov 28 2021 15:58:21 GMT-0300 (-03)","bateriaaldesconectar":80,"tiempo":35},{"bateriaalconectar":28,"fechaalconectar":"Tue Nov 30 2021 21:31:16 GMT-0300 (-03)","fechaaldesconectar":"Tue Nov 30 2021 22:08:35 GMT-0300 (-03)","bateriaaldesconectar":80,"tiempo":37}]}

He buscado por internet, pero no usan JSON como base. Si no saben cómo es que se calcula una regresión lineal, solo me basta con saber cómo puedo hacer cálculos con los datos de un json individual y que me devuelva un resultado, para posteriormente ya poder hacer un promedio con todos los diccionarios, espero se entienda.

Quiero aclarar que no soy programador, estudio química y farmacia y estoy aprendiendo esto porque siempre me llamó la atención. Muchas gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de 7aamin
Val: 9
Ha aumentado su posición en 6 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Usar JSON para hacer regresión lineal

Publicado por 7aamin (79 intervenciones) el 04/12/2021 01:09:43
Pues no se como quieres hacer el calculo de regresion lineal si no sabes programar.. puedes usar JSON en Javascript, en Python o en cualquier lenguaje de programacion.. y casi todos tienen la misma forma de acceder a los datos, como estas en un foro de Javascript, te lo explicare en Javascript:

1
2
3
4
5
6
7
8
9
10
11
12
13
//En este caso estoy guardando el JSON en una constante
//Puedes incluso importar archivos con extension .json y guardarlo igualmente en una variable o constante
const jsonFile = {"data":[{"bateriaalconectar":46,"fechaalconectar":"Sun Nov 28 2021 15:23:44 GMT-0300 (-03)","fechaaldesconectar":"Sun Nov 28 2021 15:58:21 GMT-0300 (-03)","bateriaaldesconectar":80,"tiempo":35},{"bateriaalconectar":28,"fechaalconectar":"Tue Nov 30 2021 21:31:16 GMT-0300 (-03)","fechaaldesconectar":"Tue Nov 30 2021 22:08:35 GMT-0300 (-03)","bateriaaldesconectar":80,"tiempo":37}]}
 
//Para acceder a algun valor, necesitas la llave
//Por ejemplo, quieres acceder al valor "bateriaalconectar"
//Tienes que acceder a la Llave "data" y esta llave tiene como valor un Array de objetos JSON
//Como queremos el primer objeto, seleccionamos el indice "0"
//Y luego accedemos a la llave "bateriaalconectar"
const valorQueQuiero = jsonFile.data[0].bateriaalconectar
//Tambien lo puedes hacer asi
const valorQueQuiero = jsonFile['data'][0]['bateriaalconectar']
//Esto guardara en la constante, el numero 46

No es algo que puedas dominar de la noche a la manana, ya que JSON es un formato basado en Javascript, neceitas tener alguna minima nocion de programacion para poder dominarlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Usar JSON para hacer regresión lineal

Publicado por Carlos (2 intervenciones) el 04/12/2021 02:08:06
Amigo lo logré :D estuve buscando y buscando, ahora el tema es que no sé si es lo más eficiente, pero por lo menos logré hacer que me entregue los datos que necesito. Les dejo como quedó, si tienes alguna sugerencia, encantado de verla.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
const data = '{"data":[{"bateriaalconectar":46,"fechaalconectar":"Sun Nov 28 2021 15:23:44 GMT-0300 (-03)","fechaaldesconectar":"Sun Nov 28 2021 15:58:21 GMT-0300 (-03)","bateriaaldesconectar":80,"tiempo":35},{"bateriaalconectar":16,"fechaalconectar":"Sun Nov 28 2021 23:37:56 GMT-0300 (-03)","fechaaldesconectar":"Mon Nov 29 2021 00:27:27 GMT-0300 (-03)","bateriaaldesconectar":80,"tiempo":50},{"bateriaalconectar":23,"fechaalconectar":"Mon Nov 29 2021 12:39:05 GMT-0300 (-03)","fechaaldesconectar":"Mon Nov 29 2021 13:17:48 GMT-0300 (-03)","bateriaaldesconectar":80,"tiempo":39},{"bateriaalconectar":19,"fechaalconectar":"Mon Nov 29 2021 19:34:20 GMT-0300 (-03)","fechaaldesconectar":"Mon Nov 29 2021 20:30:55 GMT-0300 (-03)","bateriaaldesconectar":80,"tiempo":57},{"bateriaalconectar":25,"fechaalconectar":"Tue Nov 30 2021 16:14:30 GMT-0300 (-03)","fechaaldesconectar":"Tue Nov 30 2021 16:50:34 GMT-0300 (-03)","bateriaaldesconectar":80,"tiempo":36}]}';
 
data = JSON.parse(data);
 
let jsonIn = data.data;
 
let datosEnArrayA = new Array();
let datosEnArrayB = new Array();
let final = 0;
 
  for (k in jsonIn) {
 
    let xy = (jsonIn[k].bateriaaldesconectar * jsonIn[k].tiempo);
    let xelevado = Math.pow(jsonIn[k].bateriaaldesconectar, 2);
    let y = jsonIn[k].tiempo;
    let x = (jsonIn[k].bateriaalconectar + jsonIn[k].bateriaaldesconectar);
    let resultado = ((2 * xy)-(x * y))/((2 * xelevado)-(Math.pow(x, 2)));
    let b = resultado.toFixed(4);
    let result = ((y/2) * b)/((x/2) * b);
    let a = result.toFixed(4);
    datosEnArrayA.push(parseFloat(a));
    datosEnArrayB.push(parseFloat(b));
  }
 
let sumaA = 0;
for (let index in datosEnArrayA) {
  sumaA = sumaA + datosEnArrayA[index];
}
let promedioA = (sumaA/datosEnArrayA.length);
 
let sumaB = 0;
for (let index in datosEnArrayB) {
  sumaB = sumaB + datosEnArrayB[index];
}
let promedioB = (sumaB/datosEnArrayB.length);
 
 
console.log('La ecuacion es: ' + 'y=' + promedioA.toFixed(4) + 'X' + '+' + promedioB.toFixed(4));
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 13
Ha aumentado su posición en 177 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Usar JSON para hacer regresión lineal

Publicado por Davit (19 intervenciones) el 04/12/2021 20:35:31
Me alegra que te funciones, pero has copiado el contenido del json y lo has pegado en una variable. Lo más efectivo pues no es. A mi se me ocurre (sin ser ningún experto) que puedes hacerlo usando fetch:

1
2
3
4
5
fetch("./archivo.json")    //pon el nombre de tu archivo json donde pone archivo, tinen que estar en la misma carpeta tanto el archivo que lo llama como el json, si no con esa ruta no te lo va a encontrar (te explico esto porque he leído que no sabes mucho)
.then(response => {
   return response.json();
})
.then(data => console.log(data));

y luego data lo tratas como has hecho con parse.JSON( .... etc

De esta forma te lo lee del archivo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar