C#, cálculo numérico: método de cálculo y programa fuente de distribución t (distribución de estudiantes)

En teoría de probabilidad y estadística, la distribución t de Student se usa a menudo para estimar la media de una población distribuida normalmente. Es la base para la prueba t de Student, que prueba la significación de la diferencia entre dos medias de muestra. La prueba t mejora la prueba Z (en: Z-test), que se puede aplicar independientemente de que el tamaño de la muestra sea grande o pequeño. Cuando el número de muestras es grande (más de 120, etc.), se puede aplicar la prueba Z, pero la prueba Z producirá un gran error cuando se usa en una muestra pequeña, por lo que se debe usar la prueba t de Student cuando la muestra es pequeño. Cuando hay más de tres grupos de datos, debido a que el error no se puede suprimir, la prueba t de Student se puede reemplazar por el análisis de varianza en este momento.
Cuando se desconoce la desviación estándar de la población original pero es necesario estimarla, podemos usar la distribución t de Student.
La distribución t de Student puede denominarse simplemente distribución t. Su derivación fue publicada por primera vez por William Gosse en 1908 cuando todavía trabajaba en Guinness Storehouse en Dublín. Debido a que no se pudo publicar en su propio nombre, el periódico utilizó el seudónimo de Student (Estudiante). La prueba t y la teoría relacionada fueron desarrolladas más tarde por el trabajo de Ronald Fisher, quien llamó a esta distribución distribución de estudiante.
 

En teoría de probabilidad y estadística, la distribución t (distribución t) se utiliza para estimar la media de una población distribuida normalmente con varianza desconocida a partir de una muestra pequeña. Si se conoce la varianza de la población (por ejemplo, si el tamaño de la muestra es lo suficientemente grande), se debe usar la distribución normal para estimar la media de la población.
La forma de la curva de distribución t está relacionada con el tamaño de n (específicamente, el grado de libertad gl). En comparación con la curva de distribución normal estándar, cuanto menor sea el grado de libertad df, más plana será la curva de distribución t, menor será la mitad de la curva y mayores serán las colas en ambos lados de la curva; mayor será el grado de libertad df , cuanto más cerca esté la curva de distribución t de la curva de distribución normal, cuando el grado de libertad df=∞, la curva de distribución t es una curva de distribución normal estándar.

utilizando el sistema;

espacio de nombres Legalsoft.Truffer
{     public class Studenttdist : Beta     {         private double nu { get; colocar; }         privado doble mu { obtener; colocar; }         firma doble privada { get; colocar; }         privado doble np { obtener; colocar; }         fac doble privado { obtener; colocar; }






        public Studenttdist(doble nnu, doble mmu = 0.0, doble ssig = 1.0)
        {             this.nu = nnu;             esto.mu = mmu;             this.sig = ssig;             if (sig <= 0.0 || nu <= 0.0)             {                 throw new Exception("bad sig,nu in Studentdist");             }             np = 0,5 * (nu + 1,0);             fac = Globals.gammln(np) - Globals.gammln(0.5 * nu);         }         public double p(doble t)         {             return Math.Exp(-np * Math.Log(1.0 + Globals.SQR((t - mu) / sig) / nu) + fac) / (Math.Sqrt(3.14159265358979324 * nu ) * firma);         }














        public double cdf(doble t)
        {             double p = 0.5 * betai(0.5 * nu, 0.5, nu / (nu + Globals.SQR((t - mu) / sig)));             si (t >= mu)             {                 devuelve 1.0 - p;             }             más             {                 devuelve p;             }         }         public double invcdf(doble p)         {             if (p <= 0.0 || p >= 1.0)             {                 throw new Exception("mala p en Studentdist");             }             doble x = invbetai(2.0 * Math.Min(p, 1.0 - p), 0.5 * nu, 0.5);

















            x = sig * Math.Sqrt(nu * (1.0 - x) / x);
            retorno (p >= 0.5 ? mu + x : mu - x);
        }
        public double aa(doble t)
        {             if (t < 0.0)             {                 throw new Exception("bad t in Studentdist");             }             return 1.0 - betai(0.5 * nu, 0.5, nu / (nu + Globals.SQR(t)));         }         public double invaa(doble p)         {             if (p < 0.0 || p >= 1.0)             {                 throw new Exception("mala p en Studentdist");             }             doble x = invbetai(1.0 - p, 0.5 * nu, 0.5);













            return Math.Sqrt(nu * (1.0 - x) / x);
        } }
    }

 

Supongo que te gusta

Origin blog.csdn.net/beijinghorn/article/details/131988650
Recomendado
Clasificación