public static void zScore(DataGridView dgvDatos, int index, string valorFaltante) { List <double> listadesordenada = new List <double>(); for (int i = 0; i < dgvDatos.Rows.Count - 1; i++) { listadesordenada.Add(Convert.ToSingle(dgvDatos.Rows[i].Cells[index].Value.ToString())); } double desviacion = Convert.ToDouble(TendenciaCentral.desviacionEstandar(dgvDatos, index, valorFaltante)); double media = Convert.ToDouble(TendenciaCentral.mediaNumericos(dgvDatos, index, valorFaltante)); for (int i = 0; i < dgvDatos.Rows.Count - 1; i++) { double normalized = (listadesordenada[i] - media) / desviacion; dgvDatos.Rows[i].Cells[index].Value = normalized; } }
public static void zScoreAbsoluta(DataGridView dgvDatos, int index, string valorFaltante) { List <double> lista = new List <double>(); for (int i = 0; i < dgvDatos.Rows.Count - 1; i++) { lista.Add(Convert.ToSingle(dgvDatos.Rows[i].Cells[index].Value.ToString())); } double desviacion = Convert.ToDouble(TendenciaCentral.desviacionEstandar(dgvDatos, index, valorFaltante)); double media = Convert.ToDouble(TendenciaCentral.mediaNumericos(dgvDatos, index, valorFaltante)); double normalizacion = 0, normalized = 0; double contador = dgvDatos.Rows.Count - 1; for (int i = 0; i < dgvDatos.Rows.Count - 1; i++) { normalizacion = normalizacion + Math.Abs(lista[i] - media); } for (int i = 0; i < dgvDatos.Rows.Count - 1; i++) { normalized = (lista[i] - media) / (1 / contador * (normalizacion)); dgvDatos.Rows[i].Cells[index].Value = normalized; } }
//Se calcula con la función el coeficiente R de pearson public static float calcularCoeficientePearson(DataGridView dgvDatos, DataGridView dgvBivariable, int index1, int index2, string valorFaltante) { float media1 = TendenciaCentral.mediaNumericos(dgvDatos, index1, valorFaltante); float media2 = TendenciaCentral.mediaNumericos(dgvDatos, index2, valorFaltante); float desviacion1 = TendenciaCentral.desviacionEstandar(dgvDatos, index1, valorFaltante); float desviacion2 = TendenciaCentral.desviacionEstandar(dgvDatos, index2, valorFaltante); float sumatoria = 0; float n = dgvBivariable.Rows.Count - 1; for (int i = 0; i < n; i++) { string value1 = dgvBivariable.Rows[i].Cells[0].Value.ToString(); string value2 = dgvBivariable.Rows[i].Cells[1].Value.ToString(); if (!string.IsNullOrEmpty(value1) && !string.IsNullOrEmpty(value2) && value1 != valorFaltante && value2 != valorFaltante) { sumatoria += (Convert.ToSingle(dgvBivariable.Rows[i].Cells[0].Value.ToString()) - media1) * (Convert.ToSingle(dgvBivariable.Rows[i].Cells[1].Value.ToString()) - media2); } } sumatoria = sumatoria / (n * desviacion1 * desviacion2); return(sumatoria); }