🛠️

Whiz Tools

Build • Create • Innovate

Kalkulator za t-testove: Jedan, Dva i Upareni Test

Izvršite sve vrste t-testova: test jednog uzorka, test dva uzorka i upareni t-test. Ovaj kalkulator vam omogućava da sprovedete statističko testiranje hipoteza za srednje vrednosti, pomažući u analizi podataka i tumačenju rezultata.

Kalkulator T-testa

sampleDataDescription
📚

Dokumentacija

T-Test Kalkulator

Uvod

t-test je osnovni statistički alat koji se koristi za određivanje da li postoji značajna razlika između srednjih vrednosti grupa. Široko se primenjuje u različitim oblastima kao što su psihologija, medicina i biznis za testiranje hipoteza. Ovaj kalkulator vam omogućava da izvršite sve vrste t-testova:

  • T-test za jedan uzorak: Testira da li se srednja vrednost jedne grupe razlikuje od poznate vrednosti.
  • T-test za dva uzorka (nezavisni uzorci): Upoređuje srednje vrednosti dve nezavisne grupe.
  • Upareni t-test: Upoređuje srednje vrednosti iz iste grupe u različitim vremenima (npr. pre i posle tretmana).

Tipovi t-testova

Podaci uzorka Srednja vrednost populacije T-test za jedan uzorak Uzorak 1 Uzorak 2 Razlika srednjih vrednosti T-test za dva uzorka Pre Posle Razlike Upareni t-test

Kako koristiti ovaj kalkulator

  1. Izaberite tip t-testa:

    • T-test za jedan uzorak
    • T-test za dva uzorka
    • Upareni t-test
  2. Unesite potrebne podatke:

    • Za t-test za jedan uzorak:

      • Srednja vrednost uzorka (xˉ\bar{x})
      • Standardna devijacija uzorka (ss)
      • Veličina uzorka (nn)
      • Srednja vrednost populacije (μ0\mu_0)
    • Za t-test za dva uzorka:

      • Srednja vrednost uzorka 1 (xˉ1\bar{x}_1)
      • Standardna devijacija uzorka 1 (s1s_1)
      • Veličina uzorka 1 (n1n_1)
      • Srednja vrednost uzorka 2 (xˉ2\bar{x}_2)
      • Standardna devijacija uzorka 2 (s2s_2)
      • Veličina uzorka 2 (n2n_2)
      • Pretpostavka o varijansi: Izaberite da li se varijanse smatraju jednakim ili nejednakim.
    • Za upareni t-test:

      • Podaci o razlikama: Unesite parne razlike.
      • Alternativno, unesite Srednju vrednost razlika (dˉ\bar{d}), Standardnu devijaciju razlika (sds_d) i Veličinu uzorka (nn).
  3. Postavite nivo značajnosti (α\alpha):

    • Uobičajeni izbori su 0.05 za nivo poverenja od 95% ili 0.01 za nivo poverenja od 99%.
  4. Izaberite pravac testa:

    • Dvodimenzionalni test: Testira bilo kakvu razliku.
    • Jednodimenzionalni test: Testira pravac razlike (specifikujte da li testirate za veće ili manje).
  5. Kliknite na dugme "Izračunaj":

    • Kalkulator će prikazati:

      • T-statistiku
      • Stepen slobode
      • P-vrednost
      • Zaključak: Da li da odbacite ili ne odbacite nultu hipotezu.

Pretpostavke

Pre korišćenja t-testa, osigurajte da su ispunjene sledeće pretpostavke:

  • Normalnost: Podaci treba da budu približno normalno distribuirani.
  • Nezavisnost: Posmatranja moraju biti nezavisna jedno od drugog.
    • Za t-test za dva uzorka, dve grupe treba da budu nezavisne.
    • Za upareni t-test, razlike treba da budu nezavisne.
  • Jednakost varijansi:
    • Za t-test za dva uzorka sa jednakim varijansama, varijanse dve populacije treba da budu jednake (homoscedastičnost).
    • Ako ova pretpostavka nije ispunjena, koristite Welchov t-test (nejednake varijanse).

Formula

T-test za jedan uzorak

T-statistika se izračunava kao:

t=xˉμ0snt = \frac{\bar{x} - \mu_0}{\frac{s}{\sqrt{n}}}
  • xˉ\bar{x}: Srednja vrednost uzorka
  • μ0\mu_0: Srednja vrednost populacije pod nultom hipotezom
  • ss: Standardna devijacija uzorka
  • nn: Veličina uzorka

T-test za dva uzorka (nezavisni uzorci)

Pretpostavljene jednake varijanse
t=xˉ1xˉ2sp1n1+1n2t = \frac{\bar{x}_1 - \bar{x}_2}{s_p \sqrt{\frac{1}{n_1} + \frac{1}{n_2}}}

Pooled standardna devijacija (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}}
Nejednake varijanse (Welchov t-test)
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}}}

Upareni t-test

t=dˉsdnt = \frac{\bar{d}}{\frac{s_d}{\sqrt{n}}}
  • dˉ\bar{d}: Srednja vrednost razlika
  • sds_d: Standardna devijacija razlika
  • nn: Broj parova

Stepeni slobode

T-test za jedan uzorak i upareni t-test:
df=n1df = n - 1
T-test za dva uzorka sa jednakim varijansama:
df=n1+n22df = n_1 + n_2 - 2
Welchov t-test:
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}}

Izračunavanje

Kalkulator izvršava sledeće korake:

  1. Izračunava T-statistiku koristeći odgovarajuću formulu na osnovu izabranog testa.
  2. Određuje stepen slobode (df).
  3. Izračunava P-vrednost koja odgovara t-statistici i df:
    • Koristi t-distribuciju za pronalaženje verovatnoće.
  4. Upoređuje P-vrednost sa nivoom značajnosti (α\alpha):
    • Ako pαp \leq \alpha, odbacite nultu hipotezu.
    • Ako p>αp > \alpha, ne odbacite nultu hipotezu.
  5. Tumači rezultate:
    • Pruža zaključak u kontekstu testa.

Upotreba

T-test za jedan uzorak

  • Testiranje efikasnosti novog leka:
    • Utvrđivanje da li se prosečno vreme oporavka sa novim lekom razlikuje od poznatog prosečnog vremena oporavka.
  • Kontrola kvaliteta:
    • Proverite da li se prosečna dužina proizvedenih delova razlikuje od specificirane norme.

T-test za dva uzorka

  • A/B testiranje u marketingu:
    • Upoređivanje konverzionih stopa između dva različita dizajna web stranica.
  • Obrazovna istraživanja:
    • Procena da li postoji razlika u rezultatima testa između dve metode podučavanja.

Upareni t-test

  • Studije pre i posle:
    • Evaluacija gubitka težine pre i posle dijetskog programa.
  • Upareni subjekti:
    • Upoređivanje merenja krvnog pritiska pre i posle primene leka kod istih subjekata.

Alternativni testovi

Iako su t-testovi moćni, imaju pretpostavke koje možda neće uvek biti ispunjene. Alternativni testovi uključuju:

  • Mann-Whitney U test:
    • Neparametrijski alternativni test za t-test za dva uzorka kada podaci ne prate normalnu distribuciju.
  • Wilcoxonov test sa potpisanim rangovima:
    • Neparametrijski ekvivalent uparenom t-testu.
  • ANOVA (Analiza varijanse):
    • Koristi se kada se upoređuju srednje vrednosti između više od dve grupe.

Istorija

T-test je razvijen od strane William Sealy Gosset 1908. godine, koji je objavio pod pseudonimom "Student" dok je radio u pivovari Guinness u Dablinu. Test je osmišljen kako bi se pratio kvalitet stout piva određivanjem da li su uzorci konzistentni sa standardima pivovare. Zbog ugovora o poverljivosti, Gosset je koristio pseudonim "Student", što je dovelo do termina "Studentov t-test."

Tokom vremena, t-test je postao kamen temeljac u statističkoj analizi, široko se podučava i primenjuje u različitim naučnim disciplinama. Postavio je temelje za razvoj složenijih statističkih metoda i fundamentalna je u oblasti inferencijalne statistike.

Primeri

Evo primera koda za izvođenje t-testa za jedan uzorak u različitim programskim jezicima:

Excel

1' T-test za jedan uzorak u Excel VBA
2Sub OneSampleTTest()
3    Dim sampleData As Range
4    Set sampleData = Range("A1:A9") ' Zamenite sa vašim opsegom podataka
5    Dim hypothesizedMean As Double
6    hypothesizedMean = 50 ' Zamenite sa vašom hipotetizovanom srednjom vrednošću
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## T-test za jedan uzorak u 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## T-test za jedan uzorak u Pythonu
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-vrednost: {p_value:.4f}")
8

JavaScript

1// T-test za jedan uzorak u JavaScriptu
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// Primer korišćenja:
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% T-test za jedan uzorak u MATLAB-u
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-vrednost: ', 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-vrednost: %.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    sample_data := []float64{51, 49, 52, 48, 50, 47, 53, 49, 51}
28    t_statistic := oneSampleTTest(sample_data, 50.0)
29    fmt.Printf("T-statistika: %.2f\n", t_statistic)
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## T-test za jedan uzorak u Ruby-ju
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// T-test za jedan uzorak u Rust-u
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

Numerički primer

Problem: Proizvođač tvrdi da je prosečan vek trajanja baterije 50 sati. Grupa potrošača testira 9 baterija i beleži sledeće vekove trajanja (u satima):

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

Da li postoji dokaz na nivou značajnosti 0.05 koji sugeriše da se prosečan vek trajanja baterije razlikuje od 50 sati?

Rešenje:

  1. Postavite hipoteze:

    • Nulta hipoteza (H0H_0): μ=50\mu = 50
    • Alternativna hipoteza (HaH_a): μ50\mu \neq 50
  2. Izračunajte srednju vrednost uzorka (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. Izračunajte standardnu devijaciju uzorka (ss):

    s=(xixˉ)2n1=2.0s = \sqrt{\frac{\sum (x_i - \bar{x})^2}{n - 1}} = 2.0
  4. Izračunajte T-statistiku:

    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. Stepeni slobode:

    df=n1=8df = n - 1 = 8
  6. Odredite P-vrednost:

    • Za t=0.00t = 0.00 i df=8df = 8, p-vrednost je 1.00.
  7. Zaključak:

    • Pošto je p-vrednost (1.00) > α\alpha (0.05), ne odbacujemo nultu hipotezu.
    • Tumačenje: Nema dovoljno dokaza da se sugeriše da se prosečan vek trajanja baterije razlikuje od 50 sati.

Reference

  1. Gosset, W. S. (1908). "Verovatna greška srednje vrednosti". Biometrika, 6(1), 1–25. JSTOR.
  2. Studentov t-test. Wikipedia. https://en.wikipedia.org/wiki/Student%27s_t-test
  3. GraphPad Statistički vodič: Razumevanje t-testova. Link
  4. Laerd Statistika: Nezavisni t-test. Link

Dodatni resursi

  • Provere pretpostavki:
    • Koristite Shapiro-Wilk test za normalnost.
    • Koristite Leveneov test za jednakost varijansi.
  • Softverski alati:
    • SPSS, SAS, Stata i R za naprednu statističku analizu.
  • Dalje čitanje:
    • "Uvod u statističko učenje" od Garetha Jamesa, Daniel Witten, Trevor Hastie i Robert Tibshirani.
    • "Statističke metode" od George W. Snedecor i William G. Cochran.