Whiz Tools
sampleDataDescription

T-Test Calculator

Introductie

De t-test is een fundamenteel statistisch hulpmiddel dat wordt gebruikt om te bepalen of er een significant verschil is tussen de gemiddelden van groepen. Het wordt op grote schaal toegepast in verschillende gebieden zoals psychologie, geneeskunde en bedrijfsleven voor hypothesetests. Deze calculator stelt je in staat om alle soorten t-tests uit te voeren:

  • One-Sample T-Test: Test of het gemiddelde van een enkele groep verschilt van een bekende waarde.
  • Two-Sample T-Test (Onafhankelijke Steekproeven): Vergelijkt de gemiddelden van twee onafhankelijke groepen.
  • Paired T-Test: Vergelijkt gemiddelden van dezelfde groep op verschillende tijdstippen (bijv. voor en na behandeling).

Typen T-Tests

Steekproefgegevens Populatie Gemiddelde One-Sample T-Test Steekproef 1 Steekproef 2 Gemiddelde Verschil Two-Sample T-Test Voor Na Verschillen Paired T-Test

Hoe deze calculator te gebruiken

  1. Selecteer het type T-Test:

    • One-Sample T-Test
    • Two-Sample T-Test
    • Paired T-Test
  2. Voer de vereiste invoerwaarden in:

    • Voor One-Sample T-Test:

      • Steekproef Gemiddelde (xˉ\bar{x})
      • Steekproef Standaarddeviatie (ss)
      • Steekproefgrootte (nn)
      • Populatie Gemiddelde (μ0\mu_0)
    • Voor Two-Sample T-Test:

      • Gemiddelde van Steekproef 1 (xˉ1\bar{x}_1)
      • Standaarddeviatie van Steekproef 1 (s1s_1)
      • Steekproefgrootte van Steekproef 1 (n1n_1)
      • Gemiddelde van Steekproef 2 (xˉ2\bar{x}_2)
      • Standaarddeviatie van Steekproef 2 (s2s_2)
      • Steekproefgrootte van Steekproef 2 (n2n_2)
      • Variantieveronderstelling: Selecteer of varianten gelijk of ongelijk zijn.
    • Voor Paired T-Test:

      • Verschilgegevens: Voer de paargewijze verschillen in.
      • Alternatief, voer het Gemiddelde van Verschillen (dˉ\bar{d}), Standaarddeviatie van Verschillen (sds_d), en Steekproefgrootte (nn) in.
  3. Stel het significantieniveau (α\alpha) in:

    • Veelvoorkomende keuzes zijn 0.05 voor een 95% betrouwbaarheidsniveau of 0.01 voor een 99% betrouwbaarheidsniveau.
  4. Kies de testrichting:

    • Twee-Tailed Test: Test op elk verschil.
    • One-Tailed Test: Test op een directioneel verschil (specificeer of je test op groter of kleiner).
  5. Klik op de knop "Bereken":

    • De calculator toont:

      • T-Statistiek
      • Vrijheidsgraden
      • P-Waarde
      • Conclusie: Of de nulhypothese moet worden verworpen of niet.

Aannames

Voordat je de t-test gebruikt, zorg ervoor dat aan de volgende aannames wordt voldaan:

  • Normaliteit: De gegevens moeten ongeveer normaal verdeeld zijn.
  • Onafhankelijkheid: Waarnemingen moeten onafhankelijk van elkaar zijn.
    • Voor Two-Sample T-Test moeten de twee groepen onafhankelijk zijn.
    • Voor Paired T-Test moeten de verschillen onafhankelijk zijn.
  • Gelijkheid van Varianten:
    • Voor Two-Sample T-Test met Gelijke Varianten moeten de varianten van de twee populaties gelijk zijn (homoscedasticiteit).
    • Als aanname niet wordt voldaan, gebruik dan de Welch's T-Test (ongelijke varianten).

Formule

One-Sample T-Test

De t-statistiek wordt als volgt berekend:

t=xˉμ0snt = \frac{\bar{x} - \mu_0}{\frac{s}{\sqrt{n}}}
  • xˉ\bar{x}: Steekproefgemiddelde
  • μ0\mu_0: Populatiegemiddelde onder de nulhypothese
  • ss: Steekproefstandaarddeviatie
  • nn: Steekproefgrootte

Two-Sample T-Test (Onafhankelijke Steekproeven)

Gelijke Varianten Aangenomen
t=xˉ1xˉ2sp1n1+1n2t = \frac{\bar{x}_1 - \bar{x}_2}{s_p \sqrt{\frac{1}{n_1} + \frac{1}{n_2}}}

Gecombineerde standaarddeviatie (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}}
Ongelijke Varianten (Welch's 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}}}

Paired T-Test

t=dˉsdnt = \frac{\bar{d}}{\frac{s_d}{\sqrt{n}}}
  • dˉ\bar{d}: Gemiddelde van de verschillen
  • sds_d: Standaarddeviatie van de verschillen
  • nn: Aantal paren

Vrijheidsgraden

One-Sample en Paired T-Test:
df=n1df = n - 1
Two-Sample T-Test met Gelijke Varianten:
df=n1+n22df = n_1 + n_2 - 2
Welch's 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}}

Berekening

De calculator voert de volgende stappen uit:

  1. Bereken de T-Statistiek met behulp van de juiste formule op basis van de geselecteerde test.
  2. Bepaal de Vrijheidsgraden (df).
  3. Bereken de P-Waarde die overeenkomt met de t-statistiek en df:
    • Gebruikt de t-verdeling om de waarschijnlijkheid te vinden.
  4. Vergelijk de P-Waarde met het Significantieniveau (α\alpha):
    • Als pαp \leq \alpha, verwerp de nulhypothese.
    • Als p>αp > \alpha, verwerp niet de nulhypothese.
  5. Interpreteer de resultaten:
    • Geef een conclusie in de context van de test.

Toepassingen

One-Sample T-Test

  • Testen van de effectiviteit van een nieuw medicijn:
    • Bepaal of de gemiddelde hersteltijd met een nieuw medicijn verschilt van de bekende gemiddelde hersteltijd.
  • Kwaliteitscontrole:
    • Controleer of de gemiddelde lengte van geproduceerde onderdelen afwijkt van de gespecificeerde norm.

Two-Sample T-Test

  • A/B-testen in marketing:
    • Vergelijk conversieratio's tussen twee verschillende webpagina-ontwerpen.
  • Onderzoek in het onderwijs:
    • Beoordeel of er een verschil is in testresultaten tussen twee onderwijsmethoden.

Paired T-Test

  • Voor en Na Studies:
    • Evalueer gewichtsverlies voor en na een dieetprogramma.
  • Gelijkwaardige Onderwerpen:
    • Vergelijk bloeddrukmetingen voor en na het toedienen van medicatie aan dezelfde onderwerpen.

Alternatieven

Hoewel t-tests krachtig zijn, hebben ze aannames die mogelijk niet altijd worden voldaan. Alternatieven zijn onder andere:

  • Mann-Whitney U Test:
    • Niet-parametrisch alternatief voor de two-sample t-test wanneer gegevens geen normale verdeling volgen.
  • Wilcoxon Signed-Rank Test:
    • Niet-parametrische equivalent van de paired t-test.
  • ANOVA (Analyse van Variantie):
    • Gebruikt bij het vergelijken van gemiddelden over meer dan twee groepen.

Geschiedenis

De t-test werd ontwikkeld door William Sealy Gosset in 1908, die publiceerde onder het pseudoniem "Student" terwijl hij werkte bij de Guinness Brewery in Dublin. De test was ontworpen om de kwaliteit van stout te controleren door te bepalen of monsterpartijen consistent waren met de normen van de brouwerij. Vanwege geheimhoudingsovereenkomsten gebruikte Gosset het pseudoniem "Student", wat leidde tot de term "Student's t-test."

In de loop der tijd is de t-test een hoeksteen geworden in statistische analyse, wijdverspreid onderwezen en toegepast in verschillende wetenschappelijke disciplines. Het heeft de weg vrijgemaakt voor de ontwikkeling van complexere statistische methoden en is fundamenteel in het veld van inferentiële statistiek.

Voorbeelden

Hier zijn codevoorbeelden voor het uitvoeren van een One-Sample T-Test in verschillende programmeertalen:

Excel

' One-Sample T-Test in Excel VBA
Sub OneSampleTTest()
    Dim sampleData As Range
    Set sampleData = Range("A1:A9") ' Vervang door je gegevensbereik
    Dim hypothesizedMean As Double
    hypothesizedMean = 50 ' Vervang door je veronderstelde gemiddelde

    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-Statistiek: " & Format(tStat, "0.00")
End Sub

R

## One-Sample T-Test in 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

## One-Sample T-Test in Python
sample_data = [51, 49, 52, 48, 50, 47, 53, 49, 51]
t_statistic, p_value = stats.ttest_1samp(sample_data, 50)
print(f"T-Statistiek: {t_statistic:.2f}, P-Waarde: {p_value:.4f}")

JavaScript

// One-Sample T-Test in JavaScript
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;
}

// Voorbeeld gebruik:
const sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
const tStatistic = oneSampleTTest(sampleData, 50);
console.log(`T-Statistiek: ${tStatistic.toFixed(2)}`);

MATLAB

% One-Sample T-Test in MATLAB
sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
[h, p, ci, stats] = ttest(sampleData, 50);
disp(['T-Statistiek: ', num2str(stats.tstat)]);
disp(['P-Waarde: ', 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-Statistiek: %.2f%n", tStatistic);
        System.out.printf("P-Waarde: %.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-Statistiek: {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() {
    sampleData := []float64{51, 49, 52, 48, 50, 47, 53, 49, 51}
    tStatistic := oneSampleTTest(sampleData, 50)
    fmt.Printf("T-Statistiek: %.2f\n", tStatistic)
}

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-Statistiek: %.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-Statistiek: " . number_format($tStatistic, 2);
?>

Ruby

## One-Sample T-Test in 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-Statistiek: %.2f", t_statistic)

Rust

// One-Sample T-Test in 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-Statistiek: {:.2}", t_statistic);
}

Numeriek Voorbeeld

Probleem: Een fabrikant beweert dat de gemiddelde levensduur van een batterij 50 uur is. Een consumentenorganisatie test 9 batterijen en registreert de volgende levensduur (in uren):

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

Is er bewijs op het 0.05 significantieniveau om te suggereren dat de gemiddelde levensduur van de batterij verschilt van 50 uur?

Oplossing:

  1. Stel de Hypotheses op:

    • Nulhypothese (H0H_0): μ=50\mu = 50
    • Alternatieve Hypothese (HaH_a): μ50\mu \neq 50
  2. Bereken het Steekproefgemiddelde (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. Bereken de Steekproefstandaarddeviatie (ss):

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

    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. Vrijheidsgraden:

    df=n1=8df = n - 1 = 8
  6. Bepaal de P-Waarde:

    • Voor t=0.00t = 0.00 en df=8df = 8, is de p-waarde 1.00.
  7. Conclusie:

    • Aangezien p-waarde (1.00) > α\alpha (0.05), verwerpen we niet de nulhypothese.
    • Interpretatie: Er is niet genoeg bewijs om te suggereren dat de gemiddelde levensduur van de batterij verschilt van 50 uur.

Referenties

  1. Gosset, W. S. (1908). "The Probable Error of a Mean". Biometrika, 6(1), 1–25. JSTOR.
  2. Student's t-test. Wikipedia. https://en.wikipedia.org/wiki/Student%27s_t-test
  3. GraphPad Statistics Guide: Understanding t-tests. Link
  4. Laerd Statistics: Independent t-test. Link

Aanvullende Bronnen

  • Aannames Controleren:
    • Gebruik de Shapiro-Wilk Test voor normaliteit.
    • Gebruik Levene's Test voor gelijkheid van varianten.
  • Softwaretools:
    • SPSS, SAS, Stata, en R voor geavanceerde statistische analyse.
  • Verder Lezen:
    • "Introduction to Statistical Learning" door Gareth James, Daniela Witten, Trevor Hastie, en Robert Tibshirani.
    • "Statistical Methods" door George W. Snedecor en William G. Cochran.
Feedback