Kalkulačka T-Test
Úvod
t-test je základný štatistický nástroj používaný na určenie, či existuje významný rozdiel medzi priemermi skupín. Je široko aplikovaný v rôznych oblastiach, ako je psychológia, medicína a obchod, na testovanie hypotéz. Táto kalkulačka vám umožňuje vykonávať všetky druhy t-testov:
- T-Test s jedným vzorkom: Testuje, či sa priemer jednej skupiny líši od známej hodnoty.
- T-Test s dvoma vzorkami (nezávislé vzorky): Porovnáva priemery dvoch nezávislých skupín.
- Párovaný T-Test: Porovnáva priemery z tej istej skupiny v rôznych časoch (napr. pred a po liečbe).
Typy T-Testov
Ako používať túto kalkulačku
-
Vyberte typ T-Testu:
- T-Test s jedným vzorkom
- T-Test s dvoma vzorkami
- Párovaný T-Test
-
Zadajte požadované vstupy:
-
Pre T-Test s jedným vzorkom:
- Priemer vzorky ()
- Štandardná odchýlka vzorky ()
- Veľkosť vzorky ()
- Priemer populácie ()
-
Pre T-Test s dvoma vzorkami:
- Priemer vzorky 1 ()
- Štandardná odchýlka vzorky 1 ()
- Veľkosť vzorky 1 ()
- Priemer vzorky 2 ()
- Štandardná odchýlka vzorky 2 ()
- Veľkosť vzorky 2 ()
- Predpoklad variancie: Vyberte, či sú variancie predpokladané ako rovnaké alebo rôzne.
-
Pre Párovaný T-Test:
- Dáta rozdielov: Zadajte párové rozdiely.
- Alternatívne, zadajte Priemer rozdielov (), Štandardná odchýlka rozdielov () a Veľkosť vzorky ().
-
-
Nastavte hladinu významnosti ():
- Bežné voľby sú 0.05 pre 95% hladinu dôvery alebo 0.01 pre 99% hladinu dôvery.
-
Vyberte smer testu:
- Dvojstranný test: Testuje akýkoľvek rozdiel.
- Jednostranný test: Testuje smerový rozdiel (určte, či testujete na väčšie alebo menšie).
-
Kliknite na tlačidlo "Vypočítať":
-
Kalkulačka zobrazí:
- T-štatistika
- Stupeň voľnosti
- P-hodnota
- Záver: Či zamietnúť alebo nezamietnúť nulovú hypotézu.
-
Predpoklady
Pred použitím t-testu sa uistite, že sú splnené nasledujúce predpoklady:
- Normalita: Dáta by mali byť približne normálne rozdelené.
- Nezávislosť: Pozorovania musia byť nezávislé od seba.
- Pre T-Test s dvoma vzorkami by mali byť dve skupiny nezávislé.
- Pre Párovaný T-Test by mali byť rozdiely nezávislé.
- Rovnosť variancií:
- Pre T-Test s dvoma vzorkami s rovnakými varianciami by mali byť variancie dvoch populácií rovnaké (homoskedasticita).
- Ak tento predpoklad nie je splnený, použite Welchov T-Test (nerovnaké variancie).
Formuly
T-Test s jedným vzorkom
T-štatistika sa vypočíta ako:
- : Priemer vzorky
- : Priemer populácie pod nulovou hypotézou
- : Štandardná odchýlka vzorky
- : Veľkosť vzorky
T-Test s dvoma vzorkami (nezávislé vzorky)
Predpokladané rovnaké variancie
Zjednotená štandardná odchýlka ():
Nerovnaké variancie (Welchov T-Test)
Párovaný T-Test
- : Priemer rozdielov
- : Štandardná odchýlka rozdielov
- : Počet párov
Stupeň voľnosti
T-Test s jedným vzorkom a Párovaný T-Test:
T-Test s dvoma vzorkami s rovnakými varianciami:
Welchov T-Test:
Výpočet
Kalkulačka vykonáva nasledujúce kroky:
- Vypočíta T-štatistiku pomocou príslušnej formuly na základe vybraného testu.
- Určí Stupeň voľnosti (df).
- Vypočíta P-hodnotu zodpovedajúcu t-štatistike a df:
- Používa t-rozdelenie na nájdenie pravdepodobnosti.
- Porovná P-hodnotu s hladinou významnosti ():
- Ak , zamietnite nulovú hypotézu.
- Ak , nezamietnite nulovú hypotézu.
- Interpretácia výsledkov:
- Poskytnite záver v kontexte testu.
Príklady použitia
T-Test s jedným vzorkom
- Testovanie účinnosti nového lieku:
- Určte, či sa priemerný čas zotavenia s novým liekom líši od známeho priemerného času zotavenia.
- Kontrola kvality:
- Skontrolujte, či sa priemerná dĺžka vyrobených dielov odchýli od stanoveného štandardu.
T-Test s dvoma vzorkami
- A/B testovanie v marketingu:
- Porovnajte konverzné pomery medzi dvoma rôznymi dizajnmi webových stránok.
- Vzdelávací výskum:
- Posúďte, či existuje rozdiel v testovacích výsledkoch medzi dvoma metódami vyučovania.
Párovaný T-Test
- Pred a po štúdie:
- Vyhodnoťte úbytok hmotnosti pred a po diétnom programe.
- Zodpovedajúce subjekty:
- Porovnajte merania krvného tlaku pred a po podaní lieku tým istým subjektom.
Alternatívy
Aj keď sú t-testy silné, majú predpoklady, ktoré nemusia byť vždy splnené. Alternatívy zahŕňajú:
- Mann-Whitney U Test:
- Neparametrická alternatíva k t-testu s dvoma vzorkami, keď dáta nesledujú normálne rozdelenie.
- Wilcoxon Signed-Rank Test:
- Neparametrická ekvivalentná verzia párovaného t-testu.
- ANOVA (Analýza rozptylu):
- Používa sa na porovnanie priemerov vo viac ako dvoch skupinách.
História
T-test bol vyvinutý Williamom Sealy Gossetom v roku 1908, ktorý publikoval pod pseudonymom "Student" počas práce v pivovare Guinness v Dubline. Test bol navrhnutý na monitorovanie kvality stoutu určením, či sú vzorky konzistentné so štandardmi pivovaru. Kvôli dohodám o dôvernosti použil Gosset pseudonym "Student", čo viedlo k termínu "Studentov t-test."
V priebehu času sa t-test stal základným kameňom v štatistickej analýze, široko vyučovaným a aplikovaným v rôznych vedeckých disciplínach. Otvoril cestu pre rozvoj komplexnejších štatistických metód a je základom v oblasti inferenciálnej štatistiky.
Príklady
Tu sú kódové príklady na vykonanie T-Testu s jedným vzorkom v rôznych programovacích jazykoch:
Excel
' T-Test s jedným vzorkom v Excel VBA
Sub OneSampleTTest()
Dim sampleData As Range
Set sampleData = Range("A1:A9") ' Nahraďte svojím rozsahom dát
Dim hypothesizedMean As Double
hypothesizedMean = 50 ' Nahraďte svojím hypotetickým priemerom
Dim sampleMean As Double
Dim sampleStdDev As Double
Dim sampleSize As Integer
Dim tStat As Double
sampleMean = Application.WorksheetFunction.Average(sampleData)
sampleStdDev = Application.WorksheetFunction.StDev_S(sampleData)
sampleSize = sampleData.Count
tStat = (sampleMean - hypothesizedMean) / (sampleStdDev / Sqr(sampleSize))
MsgBox "T-štatistika: " & Format(tStat, "0.00")
End Sub
R
## T-Test s jedným vzorkom v R
sample_data <- c(51, 49, 52, 48, 50, 47, 53, 49, 51)
t_test_result <- t.test(sample_data, mu = 50)
print(t_test_result)
Python
import numpy as np
from scipy import stats
## T-Test s jedným vzorkom v Pythone
sample_data = [51, 49, 52, 48, 50, 47, 53, 49, 51]
t_statistic, p_value = stats.ttest_1samp(sample_data, 50)
print(f"T-štatistika: {t_statistic:.2f}, P-hodnota: {p_value:.4f}")
JavaScript
// T-Test s jedným vzorkom v JavaScripte
function oneSampleTTest(sample, mu0) {
const n = sample.length;
const mean = sample.reduce((a, b) => a + b) / n;
const sd = Math.sqrt(sample.map(x => (x - mean) ** 2).reduce((a, b) => a + b) / (n - 1));
const t = (mean - mu0) / (sd / Math.sqrt(n));
return t;
}
// Príklad použitia:
const sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
const tStatistic = oneSampleTTest(sampleData, 50);
console.log(`T-štatistika: ${tStatistic.toFixed(2)}`);
MATLAB
% T-Test s jedným vzorkom v MATLABe
sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
[h, p, ci, stats] = ttest(sampleData, 50);
disp(['T-štatistika: ', num2str(stats.tstat)]);
disp(['P-hodnota: ', num2str(p)]);
Java
import org.apache.commons.math3.stat.inference.TTest;
public class OneSampleTTest {
public static void main(String[] args) {
double[] sampleData = {51, 49, 52, 48, 50, 47, 53, 49, 51};
TTest tTest = new TTest();
double mu = 50;
double tStatistic = tTest.t(mu, sampleData);
double pValue = tTest.tTest(mu, sampleData);
System.out.printf("T-štatistika: %.2f%n", tStatistic);
System.out.printf("P-hodnota: %.4f%n", pValue);
}
}
C#
using System;
using MathNet.Numerics.Statistics;
class OneSampleTTest
{
static void Main()
{
double[] sampleData = {51, 49, 52, 48, 50, 47, 53, 49, 51};
double mu0 = 50;
int n = sampleData.Length;
double mean = Statistics.Mean(sampleData);
double stdDev = Statistics.StandardDeviation(sampleData);
double tStatistic = (mean - mu0) / (stdDev / Math.Sqrt(n));
Console.WriteLine($"T-štatistika: {tStatistic:F2}");
}
}
Go
package main
import (
"fmt"
"math"
)
func oneSampleTTest(sample []float64, mu0 float64) float64 {
n := float64(len(sample))
var sum, mean, sd float64
for _, v := range sample {
sum += v
}
mean = sum / n
for _, v := range sample {
sd += math.Pow(v - mean, 2)
}
sd = math.Sqrt(sd / (n - 1))
t := (mean - mu0) / (sd / math.Sqrt(n))
return t
}
func main() {
sample_data := []float64{51, 49, 52, 48, 50, 47, 53, 49, 51}
t_statistic := oneSampleTTest(sample_data, 50.0)
fmt.Printf("T-štatistika: %.2f\n", t_statistic)
}
Swift
import Foundation
func oneSampleTTest(sample: [Double], mu0: Double) -> Double {
let n = Double(sample.count)
let mean = sample.reduce(0, +) / n
let sd = sqrt(sample.map { pow($0 - mean, 2) }.reduce(0, +) / (n - 1))
let t = (mean - mu0) / (sd / sqrt(n))
return t
}
let sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51]
let tStatistic = oneSampleTTest(sample: sampleData, mu0: 50)
print(String(format: "T-štatistika: %.2f", tStatistic))
PHP
<?php
function oneSampleTTest($sample, $mu0) {
$n = count($sample);
$mean = array_sum($sample) / $n;
$sd = sqrt(array_sum(array_map(function($x) use ($mean) {
return pow($x - $mean, 2);
}, $sample)) / ($n - 1));
$t = ($mean - $mu0) / ($sd / sqrt($n));
return $t;
}
$sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
$tStatistic = oneSampleTTest($sampleData, 50);
echo "T-štatistika: " . number_format($tStatistic, 2);
?>
Ruby
## T-Test s jedným vzorkom v Ruby
def one_sample_t_test(sample, mu0)
n = sample.size
mean = sample.sum(0.0) / n
sd = Math.sqrt(sample.map { |x| (x - mean)**2 }.sum / (n - 1))
t = (mean - mu0) / (sd / Math.sqrt(n))
t
end
sample_data = [51, 49, 52, 48, 50, 47, 53, 49, 51]
t_statistic = one_sample_t_test(sample_data, 50)
puts format("T-štatistika: %.2f", t_statistic)
Rust
// T-Test s jedným vzorkom v Rust
fn one_sample_t_test(sample: &Vec<f64>, mu0: f64) -> f64 {
let n = sample.len() as f64;
let mean: f64 = sample.iter().sum::<f64>() / n;
let sd = (sample.iter().map(|x| (x - mean).powi(2)).sum::<f64>() / (n - 1.0)).sqrt();
let t = (mean - mu0) / (sd / n.sqrt());
t
}
fn main() {
let sample_data = vec![51.0, 49.0, 52.0, 48.0, 50.0, 47.0, 53.0, 49.0, 51.0];
let t_statistic = one_sample_t_test(&sample_data, 50.0);
println!("T-štatistika: {:.2}", t_statistic);
}
Číselný príklad
Problém: Výrobca tvrdí, že priemerná životnosť batérie je 50 hodín. Skupina spotrebiteľov testuje 9 batérií a zaznamenáva nasledujúce životnosti (v hodinách):
Existuje dôkaz na hladine významnosti 0.05, že priemerná životnosť batérie sa líši od 50 hodín?
Riešenie:
-
Uveďte hypotézy:
- Nulová hypotéza ():
- Alternatívna hypotéza ():
-
Vypočítajte priemer vzorky ():
-
Vypočítajte štandardnú odchýlku vzorky ():
-
Vypočítajte T-štatistiku:
-
Stupeň voľnosti:
-
Určte P-hodnotu:
- Pre a je p-hodnota 1.00.
-
Záver:
- Keďže p-hodnota (1.00) > (0.05), nezamietnite nulovú hypotézu.
- Interpretácia: Nie je dostatok dôkazov na to, aby sa naznačilo, že priemerná životnosť batérie sa líši od 50 hodín.
Odkazy
- Gosset, W. S. (1908). "The Probable Error of a Mean". Biometrika, 6(1), 1–25. JSTOR.
- Student's t-test. Wikipedia. https://en.wikipedia.org/wiki/Student%27s_t-test
- GraphPad Statistics Guide: Pochopenie t-testov. Link
- Laerd Statistics: Nezávislý t-test. Link
Ďalšie zdroje
- Kontroly predpokladov:
- Použite Shapiro-Wilk test na normalitu.
- Použite Leveneho test na rovnosť variancií.
- Nástroje softvéru:
- SPSS, SAS, Stata a R na pokročilú štatistickú analýzu.
- Ďalšie čítanie:
- "Úvod do štatistického učenia" od Gareth James, Daniela Witten, Trevora Hastieho a Roberta Tibshiraniho.
- "Štatistické metódy" od Georgea W. Snedecora a Williama G. Cochrana.