Kalkulačka pro všechny typy t-testů a analýzu dat
Provádějte všechny typy t-testů: jednovzorkový, dvouvzorkový a párový t-test. Tato kalkulačka vám umožňuje provádět statistické testování hypotéz pro průměry, což pomáhá při analýze dat a interpretaci výsledků.
Kalkulátor T-testu
Dokumentace
Kalkulačka T-Testu
Úvod
t-test je základní statistický nástroj používaný k určení, zda existuje významný rozdíl mezi průměry skupin. Je široce aplikován v různých oborech, jako je psychologie, medicína a podnikání pro testování hypotéz. Tato kalkulačka vám umožňuje provádět všechny druhy t-testů:
- T-test pro jeden vzorek: Testuje, zda se průměr jedné skupiny liší od známé hodnoty.
- T-test pro dva vzorky (nezávislé vzorky): Porovnává průměry dvou nezávislých skupin.
- Párový t-test: Porovnává průměry ze stejné skupiny v různých časech (např. před a po léčbě).
Typy t-testů
Jak používat tuto kalkulačku
-
Vyberte typ t-testu:
- T-test pro jeden vzorek
- T-test pro dva vzorky
- Párový t-test
-
Zadejte požadované vstupy:
-
Pro t-test pro jeden vzorek:
- Průměr vzorku ()
- Směrodatná odchylka vzorku ()
- Velikost vzorku ()
- Průměr populace ()
-
Pro t-test pro dva vzorky:
- Průměr vzorku 1 ()
- Směrodatná odchylka vzorku 1 ()
- Velikost vzorku 1 ()
- Průměr vzorku 2 ()
- Směrodatná odchylka vzorku 2 ()
- Velikost vzorku 2 ()
- Předpoklad rozptylu: Vyberte, zda se předpokládá, že rozptyly jsou stejné nebo různé.
-
Pro párový t-test:
- Data rozdílů: Zadejte párové rozdíly.
- Alternativně zadejte Průměr rozdílů (), Směrodatnou odchylku rozdílů () a Velikost vzorku ().
-
-
Nastavte hladinu významnosti ():
- Běžné volby jsou 0.05 pro 95% úroveň spolehlivosti nebo 0.01 pro 99% úroveň spolehlivosti.
-
Vyberte směr testu:
- Dvoustranný test: Testuje jakýkoliv rozdíl.
- Jednostranný test: Testuje směrový rozdíl (specifikujte, zda testujete pro větší nebo menší).
-
Klikněte na tlačítko "Vypočítat":
-
Kalkulačka zobrazí:
- T-statistika
- Stupeň volnosti
- P-hodnota
- Závěr: Zda zamítnout nebo nezamítnout nulovou hypotézu.
-
Předpoklady
Před použitím t-testu se ujistěte, že jsou splněny následující předpoklady:
- Normalita: Data by měla být přibližně normálně rozdělena.
- Nezávislost: Pozorování musí být nezávislá na sobě.
- Pro t-test pro dva vzorky by měly být dvě skupiny nezávislé.
- Pro párový t-test by měly být rozdíly nezávislé.
- Rovnost rozptylů:
- Pro t-test pro dva vzorky s rovnými rozptyly by měly být rozptyly dvou populací stejné (homoskedasticita).
- Pokud tento předpoklad není splněn, použijte Welchův t-test (nerovné rozptyly).
Vzorec
T-test pro jeden vzorek
T-statistika se vypočítá jako:
- : Průměr vzorku
- : Průměr populace podle nulové hypotézy
- : Směrodatná odchylka vzorku
- : Velikost vzorku
T-test pro dva vzorky (nezávislé vzorky)
Předpokládají se stejné rozptyly
Sjednocená směrodatná odchylka ():
Nerovné rozptyly (Welchův t-test)
Párový t-test
- : Průměr rozdílů
- : Směrodatná odchylka rozdílů
- : Počet párů
Stupeň volnosti
T-test pro jeden vzorek a párový t-test:
T-test pro dva vzorky s rovnými rozptyly:
Welchův t-test:
Výpočet
Kalkulačka provádí následující kroky:
- Vypočítá T-statistiku pomocí odpovídajícího vzorce na základě vybraného testu.
- Určí stupeň volnosti (df).
- Vypočítá P-hodnotu odpovídající t-statistice a df:
- Používá t-rozdělení k nalezení pravděpodobnosti.
- Porovná P-hodnotu s hladinou významnosti ():
- Pokud , zamítněte nulovou hypotézu.
- Pokud , nezamítněte nulovou hypotézu.
- Interpretujte výsledky:
- Poskytněte závěr v kontextu testu.
Příklady použití
T-test pro jeden vzorek
- Testování účinnosti nového léku:
- Určete, zda se průměrná doba uzdravení s novým lékem liší od známé průměrné doby uzdravení.
- Kontrola kvality:
- Zkontrolujte, zda se průměrná délka vyráběných dílů odchyluje od stanoveného standardu.
T-test pro dva vzorky
- A/B testování v marketingu:
- Porovnejte míru konverze mezi dvěma různými designy webových stránek.
- Vzdělávací výzkum:
- Zjistěte, zda existuje rozdíl v testových výsledcích mezi dvěma metodami výuky.
Párový t-test
- Studie před a po:
- Zhodnoťte úbytek hmotnosti před a po dietním programu.
- Párované subjekty:
- Porovnejte měření krevního tlaku před a po podání léku stejným subjektům.
Alternativy
I když jsou t-testy mocné, mají předpoklady, které nemusí být vždy splněny. Alternativy zahrnují:
- Mann-Whitney U test:
- Neparametrická alternativa k t-testu pro dva vzorky, když data nesplňují normální rozdělení.
- Wilcoxonův podepsaný pořadový test:
- Neparametrická ekvivalent párového t-testu.
- ANOVA (analýza rozptylu):
- Používá se při porovnávání průměrů ve více než dvou skupinách.
Historie
T-test byl vyvinut Williamem Sealym Gossetem v roce 1908, který publikoval pod pseudonymem "Student" během práce v pivovaru Guinness v Dublinu. Test byl navržen k monitorování kvality stoutu určením, zda vzorky dávek jsou v souladu se standardy pivovaru. Kvůli dohodám o důvěrnosti použil Gosset pseudonym "Student", což vedlo k termínu "Studentův t-test."
V průběhu času se t-test stal základním kamenem statistické analýzy, široce vyučovaným a aplikovaným v různých vědeckých disciplínách. Umožnil rozvoj složitějších statistických metod a je základem v oblasti inferenční statistiky.
Příklady
Zde jsou příklady kódu pro provádění t-testu pro jeden vzorek v různých programovacích jazycích:
Excel
1' T-test pro jeden vzorek v Excel VBA
2Sub OneSampleTTest()
3 Dim sampleData As Range
4 Set sampleData = Range("A1:A9") ' Nahraďte svým rozsahem dat
5 Dim hypothesizedMean As Double
6 hypothesizedMean = 50 ' Nahraďte svou hypotetickou průměrnou hodnotou
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 pro jeden vzorek v 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 pro jeden vzorek v 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-hodnota: {p_value:.4f}")
8
JavaScript
1// T-test pro jeden vzorek v 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// Příklad použití:
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 pro jeden vzorek v MATLABu
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-hodnota: ', 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-hodnota: %.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)
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## T-test pro jeden vzorek v 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// T-test pro jeden vzorek v Rustu
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
Číselný příklad
Problém: Výrobce tvrdí, že průměrná životnost baterie je 50 hodin. Skupina spotřebitelů testuje 9 baterií a zaznamenává následující životnosti (v hodinách):
Existuje důkaz na hladině významnosti 0.05, že se průměrná životnost baterie liší od 50 hodin?
Řešení:
-
Uveďte hypotézy:
- Nulová hypotéza ():
- Alternativní hypotéza ():
-
Vypočítejte průměr vzorku ():
-
Vypočítejte směrodatnou odchylku vzorku ():
-
Vypočítejte T-statistiku:
-
Stupeň volnosti:
-
Určete P-hodnotu:
- Pro a je p-hodnota 1.00.
-
Závěr:
- Protože p-hodnota (1.00) > (0.05), nezamítáme nulovou hypotézu.
- Interpretace: Není dostatek důkazů k tomu, aby se naznačilo, že se průměrná životnost baterie liší od 50 hodin.
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: Pochopení t-testů. Link
- Laerd Statistics: Nezávislý t-test. Link
Další zdroje
- Kontroly předpokladů:
- Použijte Shapiro-Wilk test pro normalitu.
- Použijte Leveneův test pro rovnost rozptylů.
- Nástroje softwaru:
- SPSS, SAS, Stata a R pro pokročilou statistickou analýzu.
- Další čtení:
- "Úvod do statistického učení" od Gareth James, Daniela Witten, Trevor Hastie a Robert Tibshirani.
- "Statistické metody" od George W. Snedecora a Williama G. Cochran.
Zpětná vazba
Klikněte na toast se zpětnou vazbou a začněte dávat zpětnou vazbu o tomto nástroji
Související nástroje
Objevte další nástroje, které by mohly být užitečné pro váš pracovní postup