Métodos: funciones locales
Los métodos son funciones que se definen dentro de una clase o un objeto. Sirven para realizar acciones específicas.
Ejemplo: Este código crea una clase Estadistica con métodos para calcular varias funciones estadísticas comunes en la investigación científica. Luego, se utiliza esta clase en un componente de Angular para calcular y mostrar los resultados de estas funciones.
1- Definición de la clase Estadistica
// src/app/estadistica.ts
export class Estadistica {
constructor(private datos: number[]) {}
// Método para calcular la media
calcularMedia(): number {
const suma = this.datos.reduce((a, b) => a + b, 0);
return suma / this.datos.length;
}
// Método para calcular la mediana
calcularMediana(): number {
const datosOrdenados = [...this.datos].sort((a, b) => a - b);
const mitad = Math.floor(datosOrdenados.length / 2);
if (datosOrdenados.length % 2 === 0) {
return (datosOrdenados[mitad - 1] + datosOrdenados[mitad]) / 2;
} else {
return datosOrdenados[mitad];
}
}
// Método para calcular la moda
calcularModa(): number[] {
const frecuencia: { [key: number]: number } = {};
this.datos.forEach(num => frecuencia[num] = (frecuencia[num] || 0) + 1);
const maxFrecuencia = Math.max(...Object.values(frecuencia));
return Object.keys(frecuencia).filter(key => frecuencia[+key] === maxFrecuencia).map(Number);
}
// Método para calcular el rango
calcularRango(): number {
return Math.max(...this.datos) - Math.min(...this.datos);
}
// Método para calcular la desviación estándar
calcularDesviacionEstandar(): number {
const media = this.calcularMedia();
const sumaCuadrados = this.datos.reduce((a, b) => a + Math.pow(b - media, 2), 0);
return Math.sqrt(sumaCuadrados / this.datos.length);
}
// Método para obtener el valor mínimo
obtenerMinimo(): number {
return Math.min(...this.datos);
}
// Método para obtener el valor máximo
obtenerMaximo(): number {
return Math.max(...this.datos);
}
// Método para calcular el Chi cuadrado (simplificado)
calcularChiCuadrado(observados: number[], esperados: number[]): number {
return observados.reduce((chi, obs, i) => chi + Math.pow(obs - esperados[i], 2) / esperados[i], 0);
}
// Método para calcular el riesgo relativo (simplificado)
calcularRiesgoRelativo(a: number, b: number, c: number, d: number): number {
return (a / (a + b)) / (c / (c + d));
}
// Método para calcular el Odd ratio (simplificado)
calcularOddRatio(a: number, b: number, c: number, d: number): number {
return (a * d) / (b * c);
}
// Método para calcular el intervalo de confianza (simplificado)
calcularIntervaloConfianza(media: number, desviacionEstandar: number, n: number, z: number): [number, number] {
const margenError = z * (desviacionEstandar / Math.sqrt(n));
return [media - margenError, media + margenError];
}
// Método para calcular el coeficiente phi (simplificado)
calcularCoeficientePhi(a: number, b: number, c: number, d: number): number {
return (a * d - b * c) / Math.sqrt((a + b) * (c + d) * (a + c) * (b + d));
}
}
2- Uso de la clase Estadistica en un componente:
// src/app/app.component.ts
import { Component } from '@angular/core';
// Agregando interface de...
import { Estadistica } from './estadistica';
@Component({
selector: 'app-root',
standalone: true,
imports: [],
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class Face1Component {
datos: number[] = [1, 2, 2, 3, 4, 5, 5, 5, 6, 7];
estadistica = new Estadistica(this.datos);
media = this.estadistica.calcularMedia();
mediana = this.estadistica.calcularMediana();
moda = this.estadistica.calcularModa();
rango = this.estadistica.calcularRango();
desviacionEstandar = this.estadistica.calcularDesviacionEstandar();
minimo = this.estadistica.obtenerMinimo();
maximo = this.estadistica.obtenerMaximo();
chiCuadrado = this.estadistica.calcularChiCuadrado([10, 20], [15, 15]);
riesgoRelativo = this.estadistica.calcularRiesgoRelativo(10, 20, 30, 40);
oddRatio = this.estadistica.calcularOddRatio(10, 20, 30, 40);
intervaloConfianza = this.estadistica.calcularIntervaloConfianza(this.media, this.desviacionEstandar, this.datos.length, 1.96);
coeficientePhi = this.estadistica.calcularCoeficientePhi(10, 20, 30, 40);
}
3- Template para mostrar los resultados:
<!-- src/app/app.component.html -->
<div>
<h1>Estadísticas de los Datos</h1>
<p><b>Lista de Datos: {{datos}}</b> </p>
<p>Media: {{ media }}</p>
<p>Mediana: {{ mediana }}</p>
<p>Moda: {{ moda }}</p>
<p>Rango: {{ rango }}</p>
<p>Desviación Estándar: {{ desviacionEstandar }}</p>
<p>Mínimo: {{ minimo }}</p>
<p>Máximo: {{ maximo }}</p>
<p>Chi Cuadrado: {{ chiCuadrado }}</p>
<p>Riesgo Relativo: {{ riesgoRelativo }}</p>
<p>Odd Ratio: {{ oddRatio }}</p>
<p>Intervalo de Confianza: {{ intervaloConfianza[0] }} - {{ intervaloConfianza[1] }}</p>
<p>Coeficiente Phi: {{ coeficientePhi }}</p>
</div>
.....
Aquí va el código
Aquí va el código
.....