//MINIMOS CUADRADOS public ResultadoRegresion MinimosCuadrados(DatosParametros Datos) { ResultadoRegresion Resultados = new ResultadoRegresion(); ResultadosCalcular Calculo = Calcular(Datos); double Nominador = (Datos.NumPares * Calculo.SumaXporY) - (Calculo.SumaX * Calculo.SumaY); double Denominador = (Datos.NumPares * Calculo.SumaXCuadrados) - Math.Pow(Calculo.SumaX, 2); Resultados.Pendiente = Nominador / Denominador; Resultados.OrdenadaOrigen = Calculo.PromedioY - (Resultados.Pendiente * Calculo.PromedioX); double[] lista = new double[5]; Resultados.Efectividad = CalcularR(Datos, Calculo, Resultados, lista); return(Resultados); }
private double CalcularR(DatosParametros datos, ResultadosCalcular calculo, ResultadoRegresion regresion, double[] lista) { double st = 0; double sr = 0; double r = 0; foreach (var item in datos.Y) { double aux = calculo.PromedioY - item; st = st + Math.Pow(aux, 2); } for (int i = 0; i < datos.NumPares; i++) { double aux2 = (regresion.Pendiente * datos.X[i]) + regresion.OrdenadaOrigen - datos.Y[i]; sr = sr + Math.Pow(aux2, 2); } r = Math.Sqrt(Math.Abs(st - sr) / st) * 100; return(r); }