🛠️

Whiz Tools

Build • Create • Innovate

Kalkulator t-testów: Analiza i Testowanie Hipotez

Wykonuj wszystkie rodzaje t-testów: t-test jednosamplowy, t-test dwupróbkowy i t-test sparowany. Ten kalkulator umożliwia przeprowadzanie statystycznego testowania hipotez dla średnich, wspomagając analizę danych i interpretację wyników.

Kalkulator T-Test

sampleDataDescription
📚

Dokumentacja

Kalkulator T-Test

Wprowadzenie

t-test to podstawowe narzędzie statystyczne używane do określenia, czy istnieje istotna różnica między średnimi grup. Jest szeroko stosowany w różnych dziedzinach, takich jak psychologia, medycyna i biznes, do testowania hipotez. Ten kalkulator pozwala na przeprowadzenie wszystkich rodzajów t-testów:

  • T-Test Jedno-Próbkowy: Sprawdza, czy średnia jednej grupy różni się od znanej wartości.
  • T-Test Dwu-Próbkowy (Próbki Niezależne): Porównuje średnie dwóch niezależnych grup.
  • T-Test Sparowany: Porównuje średnie z tej samej grupy w różnych momentach (np. przed i po leczeniu).

Rodzaje T-Testów

Dane Próbkowe Średnia Populacji T-Test Jedno-Próbkowy Próbka 1 Próbka 2 Różnica Średnich T-Test Dwu-Próbkowy Przed Po Różnice T-Test Sparowany

Jak używać tego kalkulatora

  1. Wybierz typ T-Testu:

    • T-Test Jedno-Próbkowy
    • T-Test Dwu-Próbkowy
    • T-Test Sparowany
  2. Wprowadź wymagane dane:

    • Dla T-Testu Jedno-Próbkowego:

      • Średnia Próbki (xˉ\bar{x})
      • Odchylenie Standardowe Próbki (ss)
      • Rozmiar Próbki (nn)
      • Średnia Populacji (μ0\mu_0)
    • Dla T-Testu Dwu-Próbkowego:

      • Średnia Próbki 1 (xˉ1\bar{x}_1)
      • Odchylenie Standardowe Próbki 1 (s1s_1)
      • Rozmiar Próbki 1 (n1n_1)
      • Średnia Próbki 2 (xˉ2\bar{x}_2)
      • Odchylenie Standardowe Próbki 2 (s2s_2)
      • Rozmiar Próbki 2 (n2n_2)
      • Założenie Wariancji: Wybierz, czy wariancje są równe czy nierówne.
    • Dla T-Testu Sparowanego:

      • Dane Różnic: Wprowadź różnice parowe.
      • Alternatywnie, wprowadź Średnią Różnic (dˉ\bar{d}), Odchylenie Standardowe Różnic (sds_d) i Rozmiar Próbki (nn).
  3. Ustaw Poziom Istotności (α\alpha):

    • Powszechne wybory to 0.05 dla poziomu ufności 95% lub 0.01 dla poziomu ufności 99%.
  4. Wybierz kierunek testu:

    • Test Dwustronny: Sprawdza, czy istnieje jakakolwiek różnica.
    • Test Jednostronny: Sprawdza, czy istnieje różnica kierunkowa (określ, czy testujesz dla większej czy mniejszej wartości).
  5. Kliknij przycisk "Oblicz":

    • Kalkulator wyświetli:

      • Statystyka T
      • Liczba Stopni Swobody
      • Wartość P
      • Wniosek: Czy odrzucić, czy nie odrzucić hipotezy zerowej.

Założenia

Przed użyciem t-testu upewnij się, że spełnione są następujące założenia:

  • Normalność: Dane powinny być w przybliżeniu rozkładem normalnym.
  • Niezależność: Obserwacje muszą być niezależne od siebie.
    • Dla T-Testu Dwu-Próbkowego dwie grupy powinny być niezależne.
    • Dla T-Testu Sparowanego różnice powinny być niezależne.
  • Równość Wariancji:
    • Dla T-Testu Dwu-Próbkowego z Równymi Wariancjami wariancje dwóch populacji powinny być równe (homoskedastyczność).
    • Jeśli to założenie nie jest spełnione, użyj T-Testu Welcha (nierówne wariancje).

Wzór

T-Test Jedno-Próbkowy

Statystyka t jest obliczana jako:

t=xˉμ0snt = \frac{\bar{x} - \mu_0}{\frac{s}{\sqrt{n}}}
  • xˉ\bar{x}: Średnia próbki
  • μ0\mu_0: Średnia populacji pod hipotezą zerową
  • ss: Odchylenie standardowe próbki
  • nn: Rozmiar próbki

T-Test Dwu-Próbkowy (Próbki Niezależne)

Równe Wariancje
t=xˉ1xˉ2sp1n1+1n2t = \frac{\bar{x}_1 - \bar{x}_2}{s_p \sqrt{\frac{1}{n_1} + \frac{1}{n_2}}}

Pooled standard deviation (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}}
Nierówne Wariancje (T-Test Welcha)
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}}}

T-Test Sparowany

t=dˉsdnt = \frac{\bar{d}}{\frac{s_d}{\sqrt{n}}}
  • dˉ\bar{d}: Średnia różnic
  • sds_d: Odchylenie standardowe różnic
  • nn: Liczba par

Liczba Stopni Swobody

T-Test Jedno-Próbkowy i T-Test Sparowany:
df=n1df = n - 1
T-Test Dwu-Próbkowy z Równymi Wariancjami:
df=n1+n22df = n_1 + n_2 - 2
T-Test Welcha:
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}}

Obliczenia

Kalkulator wykonuje następujące kroki:

  1. Oblicz Statystykę T używając odpowiedniego wzoru w zależności od wybranego testu.
  2. Określ Liczbę Stopni Swobody (df).
  3. Oblicz Wartość P odpowiadającą statystyce t i df:
    • Używa rozkładu t do znalezienia prawdopodobieństwa.
  4. Porównaj Wartość P z Poziomem Istotności (α\alpha):
    • Jeśli pαp \leq \alpha, odrzuć hipotezę zerową.
    • Jeśli p>αp > \alpha, nie odrzucaj hipotezy zerowej.
  5. Interpretuj Wyniki:
    • Podaj wniosek w kontekście testu.

Przykłady użycia

T-Test Jedno-Próbkowy

  • Testowanie Skuteczności Nowego Leki:
    • Określenie, czy średni czas powrotu do zdrowia z nowym lekiem różni się od znanego średniego czasu powrotu do zdrowia.
  • Kontrola Jakości:
    • Sprawdzenie, czy średnia długość produkowanych części odbiega od określonego standardu.

T-Test Dwu-Próbkowy

  • Testy A/B w Marketingu:
    • Porównanie wskaźników konwersji między dwoma różnymi projektami stron internetowych.
  • Badania Edukacyjne:
    • Ocena, czy istnieje różnica w wynikach testów między dwiema metodami nauczania.

T-Test Sparowany

  • Badania Przed i Po:
    • Ocena utraty wagi przed i po programie dietetycznym.
  • Dopasowane Tematy:
    • Porównanie pomiarów ciśnienia krwi przed i po podaniu leku tym samym pacjentom.

Alternatywy

Chociaż t-testy są potężne, mają założenia, które mogą nie zawsze być spełnione. Alternatywy obejmują:

  • Test U Manna-Whitneya:
    • Nieparametryczna alternatywa dla t-testu dwu-próbkowego, gdy dane nie są rozkładem normalnym.
  • Test Wilcoxona dla Sparowanych Różnic:
    • Nieparametryczny odpowiednik t-testu sparowanego.
  • ANOVA (Analiza Wariancji):
    • Używana do porównania średnich w więcej niż dwóch grupach.

Historia

T-test został opracowany przez Williama Sealy'ego Gosseta w 1908 roku, który publikował pod pseudonimem "Student" podczas pracy w browarze Guinnessa w Dublinie. Test został zaprojektowany w celu monitorowania jakości stoutu poprzez określenie, czy próbki były zgodne z normami browaru. Z powodu umów poufności Gosset użył pseudonimu "Student", co doprowadziło do terminu "t-test Studenta."

Z biegiem czasu t-test stał się podstawą analizy statystycznej, szeroko nauczany i stosowany w różnych dyscyplinach naukowych. Położył podwaliny pod rozwój bardziej złożonych metod statystycznych i jest fundamentalny w dziedzinie statystyki inferencyjnej.

Przykłady

Oto przykłady kodu do przeprowadzenia T-Testu Jedno-Próbkowego w różnych językach programowania:

Excel

1' T-Test Jedno-Próbkowy w Excel VBA
2Sub OneSampleTTest()
3    Dim sampleData As Range
4    Set sampleData = Range("A1:A9") ' Zastąp swoim zakresem danych
5    Dim hypothesizedMean As Double
6    hypothesizedMean = 50 ' Zastąp swoją hipotezowaną średnią
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 "Statystyka T: " & Format(tStat, "0.00")
20End Sub
21

R

1## T-Test Jedno-Próbkowy w 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 Jedno-Próbkowy w Pythonie
5sample_data = [51, 49, 52, 48, 50, 47, 53, 49, 51]
6t_statistic, p_value = stats.ttest_1samp(sample_data, 50)
7print(f"Statystyka T: {t_statistic:.2f}, Wartość P: {p_value:.4f}")
8

JavaScript

1// T-Test Jedno-Próbkowy w 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// Przykład użycia:
11const sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
12const tStatistic = oneSampleTTest(sampleData, 50);
13console.log(`Statystyka T: ${tStatistic.toFixed(2)}`);
14

MATLAB

1% T-Test Jedno-Próbkowy w MATLAB
2sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
3[h, p, ci, stats] = ttest(sampleData, 50);
4disp(['Statystyka T: ', num2str(stats.tstat)]);
5disp(['Wartość P: ', 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("Statystyka T: %.2f%n", tStatistic);
11        System.out.printf("Wartość P: %.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($"Statystyka T: {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("Statystyka T: %.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: "Statystyka T: %.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 "Statystyka T: " . number_format($tStatistic, 2);
15?>
16

Ruby

1## T-Test Jedno-Próbkowy w 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("Statystyka T: %.2f", t_statistic)
13

Rust

1// T-Test Jedno-Próbkowy w 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!("Statystyka T: {:.2}", t_statistic);
14}
15

Przykład numeryczny

Problem: Producent twierdzi, że średni czas życia baterii wynosi 50 godzin. Grupa konsumentów testuje 9 baterii i rejestruje następujące czasy życia (w godzinach):

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

Czy istnieją dowody na poziomie istotności 0.05, które sugerują, że średni czas życia baterii różni się od 50 godzin?

Rozwiązanie:

  1. Sformułuj hipotezy:

    • Hipoteza zerowa (H0H_0): μ=50\mu = 50
    • Hipoteza alternatywna (HaH_a): μ50\mu \neq 50
  2. Oblicz średnią próbki (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. Oblicz odchylenie standardowe próbki (ss):

    s=(xixˉ)2n1=2.0s = \sqrt{\frac{\sum (x_i - \bar{x})^2}{n - 1}} = 2.0
  4. Oblicz statystykę T:

    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. Liczba stopni swobody:

    df=n1=8df = n - 1 = 8
  6. Określ wartość P:

    • Dla t=0.00t = 0.00 i df=8df = 8, wartość p wynosi 1.00.
  7. Wniosek:

    • Ponieważ wartość p (1.00) > \alpha (0.05), nie odrzucamy hipotezy zerowej.
    • Interpretacja: Nie ma wystarczających dowodów, aby zasugerować, że średni czas życia baterii różni się od 50 godzin.

Źródła

  1. Gosset, W. S. (1908). "The Probable Error of a Mean". Biometrika, 6(1), 1–25. JSTOR.
  2. Test t Studenta. Wikipedia. https://en.wikipedia.org/wiki/Student%27s_t-test
  3. Przewodnik statystyczny GraphPad: Zrozumienie t-testów. Link
  4. Laerd Statistics: T-test niezależny. Link

Dodatkowe zasoby

  • Sprawdzanie założeń:
    • Użyj testu Shapiro-Wilka dla normalności.
    • Użyj testu Levene'a dla równości wariancji.
  • Narzędzia programowe:
    • SPSS, SAS, Stata i R do zaawansowanej analizy statystycznej.
  • Dalsza lektura:
    • "Wprowadzenie do uczenia statystycznego" autorstwa Garetha Jamesa, Danieli Witten, Trevora Hastie i Roberta Tibshirani.
    • "Metody statystyczne" autorstwa George'a W. Snedecora i Williama G. Cochran.