🛠️

Whiz Tools

Build • Create • Innovate

Comprehensive T-Test Calculator for Statistical Analysis

Atlikite visų rūšių t-testus: vieno mėginio, dviejų mėginių ir porinių t-testus. Ši skaičiuoklė leidžia atlikti statistinį hipotezės testavimą vidurkiams, padedant analizuoti duomenis ir interpretuoti rezultatus.

T-Testo Kalkuliatorius

sampleDataDescription
📚

Dokumentacija

T-Test Skaičiuoklė

Įvadas

t-testas yra pagrindinis statistinis įrankis, naudojamas nustatyti, ar yra reikšmingas skirtumas tarp grupių vidurkių. Jis plačiai taikomas įvairiose srityse, tokiose kaip psichologija, medicina ir verslas, hipotezių testavimui. Ši skaičiuoklė leidžia atlikti visų rūšių t-testus:

  • Vienos imties t-testas: Tikrina, ar vienos grupės vidurkis skiriasi nuo žinomos vertės.
  • Dviejų imčių t-testas (nepriklausomos imtys): Lygina dviejų nepriklausomų grupių vidurkius.
  • Porinis t-testas: Lygina vidurkius iš tos pačios grupės skirtingais laikotarpiais (pvz., prieš ir po gydymo).

T-Testų tipai

Imties duomenys Populiacijos vidurkis Vienos imties t-testas Imtis 1 Imtis 2 Vidurkio skirtumas Dviejų imčių t-testas Prieš Po Skirtumai Porinis t-testas

Kaip naudotis šia skaičiuokle

  1. Pasirinkite t-testo tipą:

    • Vienos imties t-testas
    • Dviejų imčių t-testas
    • Porinis t-testas
  2. Įveskite reikiamus duomenis:

    • Vienos imties t-testui:

      • Imties vidurkis (xˉ\bar{x})
      • Imties standartinis nuokrypis (ss)
      • Imties dydis (nn)
      • Populiacijos vidurkis (μ0\mu_0)
    • Dviejų imčių t-testui:

      • Imties 1 vidurkis (xˉ1\bar{x}_1)
      • Imties 1 standartinis nuokrypis (s1s_1)
      • Imties 1 dydis (n1n_1)
      • Imties 2 vidurkis (xˉ2\bar{x}_2)
      • Imties 2 standartinis nuokrypis (s2s_2)
      • Imties 2 dydis (n2n_2)
      • Variacijos prielaida: Pasirinkite, ar variacijos laikomos lygios ar nelygios.
    • Poriniam t-testui:

      • Skirtumų duomenys: Įveskite porinius skirtumus.
      • Alternatyviai, įveskite Skirtumų vidurkį (dˉ\bar{d}), Skirtumų standartinį nuokrypį (sds_d) ir Imties dydį (nn).
  3. Nustatykite reikšmingumo lygį (α\alpha):

    • Dažniausiai pasirenkami yra 0.05 95% pasitikėjimo lygiui arba 0.01 99% pasitikėjimo lygiui.
  4. Pasirinkite testo kryptį:

    • Dviejų krypčių testas: Tikrina bet kokį skirtumą.
    • Vienos krypčių testas: Tikrina kryptinį skirtumą (nurodykite, ar tikrinate, ar daugiau, ar mažiau).
  5. Paspauskite mygtuką "Skaičiuoti":

    • Skaičiuoklė parodys:

      • T-statistiką
      • Laipsnių laisvę
      • P-reikšmę
      • Išvadą: Ar atmesti, ar ne atmesti nulinę hipotezę.

Prielaidos

Prieš naudojantis t-testu, įsitikinkite, kad yra tenkinamos šios prielaidos:

  • Normalumas: Duomenys turėtų būti maždaug normaliai paskirstyti.
  • Nepriklausomumas: Stebėjimai turi būti nepriklausomi vienas nuo kito.
    • Dviejų imčių t-testui dvi grupės turi būti nepriklausomos.
    • Poriniam t-testui skirtumai turi būti nepriklausomi.
  • Lygios variacijos:
    • Dviejų imčių t-testui su lygiosiomis variacijomis, dviejų populiacijų variacijos turėtų būti lygios (homoscedastiškumas).
    • Jei ši prielaida nėra tenkinama, naudokite Welch t-testą (nelygios variacijos).

Formulė

Vienos imties t-testas

T-statistika apskaičiuojama taip:

t=xˉμ0snt = \frac{\bar{x} - \mu_0}{\frac{s}{\sqrt{n}}}
  • xˉ\bar{x}: Imties vidurkis
  • μ0\mu_0: Populiacijos vidurkis pagal nulinę hipotezę
  • ss: Imties standartinis nuokrypis
  • nn: Imties dydis

Dviejų imčių t-testas (nepriklausomos imtys)

Lygios variacijos prielaida
t=xˉ1xˉ2sp1n1+1n2t = \frac{\bar{x}_1 - \bar{x}_2}{s_p \sqrt{\frac{1}{n_1} + \frac{1}{n_2}}}

Bendra standartinė nuokrypis (sps_p):

sp=(n11)s12+(n21)s22n1+n22s_p = \sqrt{\frac{(n_1 - 1)s_1^2 + (n_2 - 1)s_2^2}{n_1 + n_2 - 2}}
Nelygios variacijos (Welch t-testas)
t=xˉ1xˉ2s12n1+s22n2t = \frac{\bar{x}_1 - \bar{x}_2}{\sqrt{\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}}}

Porinis t-testas

t=dˉsdnt = \frac{\bar{d}}{\frac{s_d}{\sqrt{n}}}
  • dˉ\bar{d}: Skirtumų vidurkis
  • sds_d: Skirtumų standartinis nuokrypis
  • nn: Porų skaičius

Laipsnių laisvė

Vienos imties ir poriniam t-testui:
df=n1df = n - 1
Dviejų imčių t-testui su lygiosiomis variacijomis:
df=n1+n22df = n_1 + n_2 - 2
Welch t-testui:
df=(s12n1+s22n2)2(s12n1)2n11+(s22n2)2n21df = \frac{\left( \frac{s_1^2}{n_1} + \frac{s_2^2}{n_2} \right)^2}{\frac{\left( \frac{s_1^2}{n_1} \right)^2}{n_1 -1} + \frac{\left( \frac{s_2^2}{n_2} \right)^2}{n_2 -1}}

Skaičiavimas

Skaičiuoklė atlieka šiuos veiksmus:

  1. Apskaičiuoja T-statistiką naudodama atitinkamą formulę, priklausomai nuo pasirinkto testo.
  2. Nustato laipsnių laisvę (df).
  3. Apskaičiuoja P-reikšmę, atitinkančią t-statistiką ir df:
    • Naudoja t-paskirstymą, kad rastų tikimybę.
  4. Palygina P-reikšmę su reikšmingumo lygiu (α\alpha):
    • Jei pαp \leq \alpha, atmesti nulinę hipotezę.
    • Jei p>αp > \alpha, neatmesti nulinės hipotezės.
  5. Interpretuoja rezultatus:
    • Pateikia išvadą kontekste.

Naudojimo atvejai

Vienos imties t-testas

  • Naujo vaisto efektyvumo testavimas:
    • Nustatyti, ar vidutinė atsigavimo trukmė su nauju vaistu skiriasi nuo žinomos vidutinės atsigavimo trukmės.
  • Kokybės kontrolė:
    • Patikrinti, ar vidutinė pagamintų dalių ilgis skiriasi nuo nurodyto standarto.

Dviejų imčių t-testas

  • A/B testavimas rinkodaroje:
    • Lyginti konversijos rodiklius tarp dviejų skirtingų svetainių dizainų.
  • Švietimo tyrimai:
    • Nustatyti, ar yra skirtumas testų rezultatuose tarp dviejų mokymo metodų.

Porinis t-testas

  • Prieš ir po tyrimai:
    • Įvertinti svorio pokyčius prieš ir po dietos programos.
  • Pora subjektų:
    • Lyginti kraujospūdžio matavimus prieš ir po vaisto vartojimo tiems patiems subjektams.

Alternatyvos

Nors t-testai yra galingi, jie turi prielaidas, kurios gali būti ne visada tenkinamos. Alternatyvos apima:

  • Mann-Whitney U testas:
    • Neparametrinė alternatyva dviejų imčių t-testui, kai duomenys neseka normalios paskirstymo.
  • Wilcoxon pasirašytų skirtumų testas:
    • Neparametrinis porinio t-testo ekvivalentas.
  • ANOVA (variacijos analizė):
    • Naudojama, kai lyginami vidurkiai daugiau nei dviejose grupėse.

Istorija

t-testą sukūrė William Sealy Gosset 1908 m., kuris publikavo po slapyvardžiu "Student", dirbdamas Guinness alaus darykloje Dubline. Testas buvo sukurtas stebėti stout kokybę, nustatant, ar imties partijos atitinka alaus daryklos standartus. Dėl konfidencialumo sutarčių Gossetas naudojo slapyvardį "Student", todėl atsirado terminas "Studento t-testas."

Per laiką t-testas tapo kertiniu akmeniu statistinėje analizėje, plačiai mokomas ir taikomas įvairiose mokslinėse disciplinose. Jis atvėrė kelią sudėtingesnių statistinių metodų plėtrai ir yra pagrindinis inferencinės statistikos srityje.

Pavyzdžiai

Čia pateikiami kodo pavyzdžiai, kaip atlikti Vienos imties t-testą įvairiose programavimo kalbose:

Excel

1' Vienos imties t-testas Excel VBA
2Sub OneSampleTTest()
3    Dim sampleData As Range
4    Set sampleData = Range("A1:A9") ' Pakeiskite savo duomenų diapazonu
5    Dim hypothesizedMean As Double
6    hypothesizedMean = 50 ' Pakeiskite savo hipotezės vidurkį
7
8    Dim sampleMean As Double
9    Dim sampleStdDev As Double
10    Dim sampleSize As Integer
11    Dim tStat As Double
12
13    sampleMean = Application.WorksheetFunction.Average(sampleData)
14    sampleStdDev = Application.WorksheetFunction.StDev_S(sampleData)
15    sampleSize = sampleData.Count
16
17    tStat = (sampleMean - hypothesizedMean) / (sampleStdDev / Sqr(sampleSize))
18
19    MsgBox "T-Statistika: " & Format(tStat, "0.00")
20End Sub
21

R

1## Vienos imties t-testas R
2sample_data <- c(51, 49, 52, 48, 50, 47, 53, 49, 51)
3t_test_result <- t.test(sample_data, mu = 50)
4print(t_test_result)
5

Python

1import numpy as np
2from scipy import stats
3
4## Vienos imties t-testas Python
5sample_data = [51, 49, 52, 48, 50, 47, 53, 49, 51]
6t_statistic, p_value = stats.ttest_1samp(sample_data, 50)
7print(f"T-Statistika: {t_statistic:.2f}, P-Reikšmė: {p_value:.4f}")
8

JavaScript

1// Vienos imties t-testas JavaScript
2function oneSampleTTest(sample, mu0) {
3  const n = sample.length;
4  const mean = sample.reduce((a, b) => a + b) / n;
5  const sd = Math.sqrt(sample.map(x => (x - mean) ** 2).reduce((a, b) => a + b) / (n - 1));
6  const t = (mean - mu0) / (sd / Math.sqrt(n));
7  return t;
8}
9
10// Pavyzdžio naudojimas:
11const sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
12const tStatistic = oneSampleTTest(sampleData, 50);
13console.log(`T-Statistika: ${tStatistic.toFixed(2)}`);
14

MATLAB

1% Vienos imties t-testas MATLAB
2sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
3[h, p, ci, stats] = ttest(sampleData, 50);
4disp(['T-Statistika: ', num2str(stats.tstat)]);
5disp(['P-Reikšmė: ', num2str(p)]);
6

Java

1import org.apache.commons.math3.stat.inference.TTest;
2
3public class OneSampleTTest {
4    public static void main(String[] args) {
5        double[] sampleData = {51, 49, 52, 48, 50, 47, 53, 49, 51};
6        TTest tTest = new TTest();
7        double mu = 50;
8        double tStatistic = tTest.t(mu, sampleData);
9        double pValue = tTest.tTest(mu, sampleData);
10        System.out.printf("T-Statistika: %.2f%n", tStatistic);
11        System.out.printf("P-Reikšmė: %.4f%n", pValue);
12    }
13}
14

C#

1using System;
2using MathNet.Numerics.Statistics;
3
4class OneSampleTTest
5{
6    static void Main()
7    {
8        double[] sampleData = {51, 49, 52, 48, 50, 47, 53, 49, 51};
9        double mu0 = 50;
10        int n = sampleData.Length;
11        double mean = Statistics.Mean(sampleData);
12        double stdDev = Statistics.StandardDeviation(sampleData);
13        double tStatistic = (mean - mu0) / (stdDev / Math.Sqrt(n));
14        Console.WriteLine($"T-Statistika: {tStatistic:F2}");
15    }
16}
17

Go

1package main
2
3import (
4    "fmt"
5    "math"
6)
7
8func oneSampleTTest(sample []float64, mu0 float64) float64 {
9    n := float64(len(sample))
10    var sum, mean, sd float64
11
12    for _, v := range sample {
13        sum += v
14    }
15    mean = sum / n
16
17    for _, v := range sample {
18        sd += math.Pow(v - mean, 2)
19    }
20    sd = math.Sqrt(sd / (n - 1))
21
22    t := (mean - mu0) / (sd / math.Sqrt(n))
23    return t
24}
25
26func main() {
27    sampleData := []float64{51, 49, 52, 48, 50, 47, 53, 49, 51}
28    tStatistic := oneSampleTTest(sampleData, 50.0)
29    fmt.Printf("T-Statistika: %.2f\n", tStatistic)
30}
31

Swift

1import Foundation
2
3func oneSampleTTest(sample: [Double], mu0: Double) -> Double {
4    let n = Double(sample.count)
5    let mean = sample.reduce(0, +) / n
6    let sd = sqrt(sample.map { pow($0 - mean, 2) }.reduce(0, +) / (n - 1))
7    let t = (mean - mu0) / (sd / sqrt(n))
8    return t
9}
10
11let sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51]
12let tStatistic = oneSampleTTest(sample: sampleData, mu0: 50)
13print(String(format: "T-Statistika: %.2f", tStatistic))
14

PHP

1<?php
2function oneSampleTTest($sample, $mu0) {
3    $n = count($sample);
4    $mean = array_sum($sample) / $n;
5    $sd = sqrt(array_sum(array_map(function($x) use ($mean) {
6        return pow($x - $mean, 2);
7    }, $sample)) / ($n - 1));
8    $t = ($mean - $mu0) / ($sd / sqrt($n));
9    return $t;
10}
11
12$sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
13$tStatistic = oneSampleTTest($sampleData, 50);
14echo "T-Statistika: " . number_format($tStatistic, 2);
15?>
16

Ruby

1## Vienos imties t-testas Ruby
2def one_sample_t_test(sample, mu0)
3  n = sample.size
4  mean = sample.sum(0.0) / n
5  sd = Math.sqrt(sample.map { |x| (x - mean)**2 }.sum / (n - 1))
6  t = (mean - mu0) / (sd / Math.sqrt(n))
7  t
8end
9
10sample_data = [51, 49, 52, 48, 50, 47, 53, 49, 51]
11t_statistic = one_sample_t_test(sample_data, 50)
12puts format("T-Statistika: %.2f", t_statistic)
13

Rust

1// Vienos imties t-testas Rust
2fn one_sample_t_test(sample: &Vec<f64>, mu0: f64) -> f64 {
3    let n = sample.len() as f64;
4    let mean: f64 = sample.iter().sum::<f64>() / n;
5    let sd = (sample.iter().map(|x| (x - mean).powi(2)).sum::<f64>() / (n - 1.0)).sqrt();
6    let t = (mean - mu0) / (sd / n.sqrt());
7    t
8}
9
10fn main() {
11    let sample_data = vec![51.0, 49.0, 52.0, 48.0, 50.0, 47.0, 53.0, 49.0, 51.0];
12    let t_statistic = one_sample_t_test(&sample_data, 50.0);
13    println!("T-Statistika: {:.2}", t_statistic);
14}
15

Skaičiavimo pavyzdys

Problema: Gamintojas teigia, kad vidutinė baterijos tarnavimo trukmė yra 50 valandų. Vartotojų grupė išbando 9 baterijas ir užfiksuoja šias tarnavimo trukmes (valandomis):

51, 49, 52, 48, 50, 47, 53, 49, 5151,\ 49,\ 52,\ 48,\ 50,\ 47,\ 53,\ 49,\ 51

Ar yra įrodymų 0.05 reikšmingumo lygyje, kad vidutinė baterijos tarnavimo trukmė skiriasi nuo 50 valandų?

Sprendimas:

  1. Nustatykite hipotezes:

    • Nulinė hipotezė (H0H_0): μ=50\mu = 50
    • Alternatyvi hipotezė (HaH_a): μ50\mu \neq 50
  2. Apskaičiuokite imties vidurkį (xˉ\bar{x}):

    xˉ=51+49+52+48+50+47+53+49+519=50.00\bar{x} = \frac{51 + 49 + 52 + 48 + 50 + 47 + 53 + 49 + 51}{9} = 50.00
  3. Apskaičiuokite imties standartinį nuokrypį (ss):

    s=(xixˉ)2n1=2.0s = \sqrt{\frac{\sum (x_i - \bar{x})^2}{n - 1}} = 2.0
  4. Apskaičiuokite T-statistiką:

    t=xˉμ0sn=50.00502.09=0.00t = \frac{\bar{x} - \mu_0}{\frac{s}{\sqrt{n}}} = \frac{50.00 - 50}{\frac{2.0}{\sqrt{9}}} = 0.00
  5. Laipsnių laisvė:

    df=n1=8df = n - 1 = 8
  6. Nustatykite P-reikšmę:

    • T už t=0.00t = 0.00 ir df=8df = 8, p-reikšmė yra 1.00.
  7. Išvada:

    • Kadangi p-reikšmė (1.00) > α\alpha (0.05), mes neatmesti nulinės hipotezės.
    • Interpretacija: Nėra pakankamai įrodymų teigti, kad vidutinė baterijos tarnavimo trukmė skiriasi nuo 50 valandų.

Nuorodos

  1. Gosset, W. S. (1908). "The Probable Error of a Mean". Biometrika, 6(1), 1–25. JSTOR.
  2. Studento t-testas. Vikipedija. https://en.wikipedia.org/wiki/Student%27s_t-test
  3. GraphPad statistikos vadovas: Suprasti t-testus. Nuoroda
  4. Laerd statistika: Nepriklausomas t-testas. Nuoroda

Papildomos priemonės

  • Prieigos patikrinimai:
    • Naudokite Shapiro-Wilk testą normalumui.
    • Naudokite Levene testą lygioms variacijoms.
  • Programinės įrangos įrankiai:
    • SPSS, SAS, Stata ir R pažengusiai statistinei analizei.
  • Tolimesnė literatūra:
    • "Statistinio mokymo įvadas" autorių Gareth James, Daniela Witten, Trevor Hastie ir Robert Tibshirani.
    • "Statistiniai metodai" autorių George W. Snedecor ir William G. Cochran.