#include <iostream> #include <vector> #include <string> #include <iomanip> #include <cmath> // Necesario para sqrt() y pow() using namespace std; // Estructura para almacenar los datos de cada intervalo de clase struct IntervaloFrecuencia { string intervalo; int fi; double hi; double pi_percent; int Fi; int mi; int fimi; int fimi2; // fimi^2 }; // Función para calcular la media (Media = Suma(fimi) / Suma(fi)) double calcular_media(const vector<IntervaloFrecuencia>& tabla, int total_fi, int total_fimi) { if (total_fi == 0) return 0.0; return static_cast<double>(total_fimi) / total_fi; } // Función para calcular la varianza y la desviación estándar void calcular_varianza_desviacion(const vector<IntervaloFrecuencia>& tabla, int total_fi, double media, double& varianza, double& desviacion_estandar) { double suma_dif_cuadrado = 0.0; for (const auto && fila : tabla) { // Fórmula: Suma(fi * (mi - media)^2) suma_dif_cuadrado += fila.fi * pow(fila.mi - media, 2); } // Para una muestra, se divide por n-1 (total_fi - 1) // Si fuera una población, se dividiría por n (total_fi) if (total_fi > 1) { varianza = suma_dif_cuadrado / (total_fi - 1); // Usando n-1 para muestra desviacion_estandar = sqrt(varianza); desviacion_estandar = 0.0; }
Please keep input under 1000 characters