🛠️

Whiz Tools

Build • Create • Innovate

T-Test Kalkylator för Statistisk Hypotesprövning

Utför alla typer av t-tester: enstickprov, tvåstickprov och parade t-tester. Denna kalkylator gör det möjligt för dig att genomföra statistisk hypotesprövning för medelvärden, vilket hjälper till med dataanalys och tolkning av resultat.

T-Test Kalkylator

sampleDataDescription
📚

Dokumentation

T-Test Kalkylator

Introduktion

t-testet är ett grundläggande statistiskt verktyg som används för att avgöra om det finns en signifikant skillnad mellan medelvärdena av grupper. Det tillämpas i olika områden som psykologi, medicin och företagande för hypotesprövning. Denna kalkylator låter dig utföra alla typer av t-tester:

  • Ett-sample T-Test: Testar om medelvärdet av en enda grupp skiljer sig från ett känt värde.
  • Två-sample T-Test (Oberoende prover): Jämför medelvärdena av två oberoende grupper.
  • Parat T-Test: Jämför medelvärden från samma grupp vid olika tidpunkter (t.ex. före och efter behandling).

Typer av T-Tester

Provdata Populationsmedel Ett-sample T-Test Prov 1 Prov 2 Medelskillnad Två-sample T-Test Före Efter Skillnader Parat T-Test

Hur man använder denna kalkylator

  1. Välj typ av T-Test:

    • Ett-sample T-Test
    • Två-sample T-Test
    • Parat T-Test
  2. Ange nödvändiga indata:

    • För Ett-sample T-Test:

      • Provmedel (xˉ\bar{x})
      • Provstandardavvikelse (ss)
      • Provstorlek (nn)
      • Populationsmedel (μ0\mu_0)
    • För Två-sample T-Test:

      • Medel av Prov 1 (xˉ1\bar{x}_1)
      • Standardavvikelse av Prov 1 (s1s_1)
      • Provstorlek av Prov 1 (n1n_1)
      • Medel av Prov 2 (xˉ2\bar{x}_2)
      • Standardavvikelse av Prov 2 (s2s_2)
      • Provstorlek av Prov 2 (n2n_2)
      • Variansantagande: Välj om variansen antas vara lika eller olika.
    • För Parat T-Test:

      • Skillnadsdata: Ange de parvisa skillnaderna.
      • Alternativt, ange Medel av Skillnader (dˉ\bar{d}), Standardavvikelse av Skillnader (sds_d) och Provstorlek (nn).
  3. Ställ in signifikansnivån (α\alpha):

    • Vanliga val är 0.05 för en 95% konfidensnivå eller 0.01 för en 99% konfidensnivå.
  4. Välj testinriktning:

    • Tvåsvansstest: Testar för vilken skillnad som helst.
    • Ensvansstest: Testar för en riktad skillnad (specificera om testet är för större än eller mindre än).
  5. Klicka på "Beräkna"-knappen:

    • Kalkylatorn kommer att visa:

      • T-Statistik
      • Frihetsgrader
      • P-Värde
      • Slutsats: Om man ska förkasta eller inte förkasta nollhypotesen.

Antaganden

Innan du använder t-testet, se till att följande antaganden är uppfyllda:

  • Normalitet: Data bör vara ungefär normalt fördelad.
  • Oberoende: Observationer måste vara oberoende av varandra.
    • För Två-sample T-Test bör de två grupperna vara oberoende.
    • För Parat T-Test bör skillnaderna vara oberoende.
  • Likhet av varianser:
    • För Två-sample T-Test med lika varianser bör variansen av de två populationerna vara lika (homoskedasticitet).
    • Om detta antagande inte är uppfyllt, använd Welch's T-Test (olika varianser).

Formel

Ett-sample T-Test

T-statistiken beräknas som:

t=xˉμ0snt = \frac{\bar{x} - \mu_0}{\frac{s}{\sqrt{n}}}
  • xˉ\bar{x}: Provmedel
  • μ0\mu_0: Populationsmedel under nollhypotesen
  • ss: Provstandardavvikelse
  • nn: Provstorlek

Två-sample T-Test (Oberoende prover)

Lika varianser antagna
t=xˉ1xˉ2sp1n1+1n2t = \frac{\bar{x}_1 - \bar{x}_2}{s_p \sqrt{\frac{1}{n_1} + \frac{1}{n_2}}}

Pooled standardavvikelse (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}}
Olika varianser (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}}}

Parat T-Test

t=dˉsdnt = \frac{\bar{d}}{\frac{s_d}{\sqrt{n}}}
  • dˉ\bar{d}: Medel av skillnaderna
  • sds_d: Standardavvikelse av skillnaderna
  • nn: Antal par

Frihetsgrader

Ett-sample och Parat T-Test:
df=n1df = n - 1
Två-sample T-Test med lika varianser:
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}}

Beräkning

Kalkylatorn utför följande steg:

  1. Beräkna T-Statistiken med hjälp av lämplig formel baserat på det valda testet.
  2. Bestäm frihetsgraderna (df).
  3. Beräkna P-Värdet motsvarande t-statistiken och df:
    • Använder t-fördelningen för att hitta sannolikheten.
  4. Jämför P-Värdet med signifikansnivån (α\alpha):
    • Om pαp \leq \alpha, förkasta nollhypotesen.
    • Om p>αp > \alpha, förkasta inte nollhypotesen.
  5. Tolka resultaten:
    • Ge en slutsats i kontexten av testet.

Användningsfall

Ett-sample T-Test

  • Testa ny läkemedelseffektivitet:
    • Avgöra om den genomsnittliga återhämtningstiden med ett nytt läkemedel skiljer sig från den kända genomsnittliga återhämtningstiden.
  • Kvalitetskontroll:
    • Kontrollera om det genomsnittliga längden på tillverkade delar avviker från den angivna standarden.

Två-sample T-Test

  • A/B-testning i marknadsföring:
    • Jämföra konverteringsgrader mellan två olika webbdesigns.
  • Utbildningsforskning:
    • Bedöma om det finns en skillnad i provresultat mellan två undervisningsmetoder.

Parat T-Test

  • Före och efter-studier:
    • Utvärdera viktminskning före och efter ett dietprogram.
  • Matchade ämnen:
    • Jämföra blodtrycksmätningar före och efter att ha administrerat medicin till samma ämnen.

Alternativ

Även om t-tester är kraftfulla, har de antaganden som kanske inte alltid uppfylls. Alternativ inkluderar:

  • Mann-Whitney U Test:
    • Icke-parametrisk alternativ till två-sample t-test när data inte följer en normalfördelning.
  • Wilcoxon Signed-Rank Test:
    • Icke-parametrisk motsvarighet till det parata t-testet.
  • ANOVA (Analys av varians):
    • Används när man jämför medelvärden över mer än två grupper.

Historia

T-testet utvecklades av William Sealy Gosset 1908, som publicerade under pseudonymen "Student" medan han arbetade på Guinness Brewery i Dublin. Testet utformades för att övervaka kvaliteten på stout genom att avgöra om provbatcher var konsekventa med bryggeriets standarder. På grund av sekretessavtal använde Gosset pseudonymen "Student", vilket ledde till termen "Student's t-test."

Över tid har t-testet blivit en hörnsten inom statistisk analys, allmänt undervisad och tillämpad inom olika vetenskapliga discipliner. Det banade väg för utvecklingen av mer komplexa statistiska metoder och är grundläggande inom inferentiell statistik.

Exempel

Här är kodexempel för att utföra ett Ett-sample T-Test i olika programmeringsspråk:

Excel

1' Ett-sample T-Test i Excel VBA
2Sub OneSampleTTest()
3    Dim sampleData As Range
4    Set sampleData = Range("A1:A9") ' Ersätt med ditt dataintervall
5    Dim hypothesizedMean As Double
6    hypothesizedMean = 50 ' Ersätt med ditt antagna medel
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-Statistik: " & Format(tStat, "0.00")
20End Sub
21

R

1## Ett-sample T-Test i 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## Ett-sample T-Test i Python
5sample_data = [51, 49, 52, 48, 50, 47, 53, 49, 51]
6t_statistic, p_value = stats.ttest_1samp(sample_data, 50)
7print(f"T-Statistik: {t_statistic:.2f}, P-Värde: {p_value:.4f}")
8

JavaScript

1// Ett-sample T-Test i 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// Exempelanvändning:
11const sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
12const tStatistic = oneSampleTTest(sampleData, 50);
13console.log(`T-Statistik: ${tStatistic.toFixed(2)}`);
14

MATLAB

1% Ett-sample T-Test i MATLAB
2sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
3[h, p, ci, stats] = ttest(sampleData, 50);
4disp(['T-Statistik: ', num2str(stats.tstat)]);
5disp(['P-Värde: ', 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-Statistik: %.2f%n", tStatistic);
11        System.out.printf("P-Värde: %.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-Statistik: {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-Statistik: %.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-Statistik: %.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-Statistik: " . number_format($tStatistic, 2);
15?>
16

Ruby

1## Ett-sample T-Test i 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-Statistik: %.2f", t_statistic)
13

Rust

1// Ett-sample T-Test i 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!("T-Statistik: {:.2}", t_statistic);
14}
15

Numeriskt exempel

Problem: En tillverkare påstår att den genomsnittliga livslängden på ett batteri är 50 timmar. En konsumentgrupp testar 9 batterier och registrerar följande livslängder (i timmar):

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

Finns det bevis på 0.05 signifikansnivå för att antyda att den genomsnittliga batterilivslängden skiljer sig från 50 timmar?

Lösning:

  1. Ange hypoteserna:

    • Nollhypotes (H0H_0): μ=50\mu = 50
    • Alternativ hypotes (HaH_a): μ50\mu \neq 50
  2. Beräkna provmedel (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. Beräkna provstandardavvikelse (ss):

    s=(xixˉ)2n1=2.0s = \sqrt{\frac{\sum (x_i - \bar{x})^2}{n - 1}} = 2.0
  4. Beräkna T-Statistik:

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

    df=n1=8df = n - 1 = 8
  6. Bestäm P-Värde:

    • För t=0.00t = 0.00 och df=8df = 8, är p-värdet 1.00.
  7. Slutsats:

    • Eftersom p-värde (1.00) > α\alpha (0.05), förkastar vi inte nollhypotesen.
    • Tolkning: Det finns inte tillräckligt med bevis för att antyda att den genomsnittliga batterilivslängden skiljer sig från 50 timmar.

Referenser

  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: Förstå t-tester. Link
  4. Laerd Statistics: Oberoende t-test. Link

Ytterligare resurser

  • Antagande kontroller:
    • Använd Shapiro-Wilk Test för normalitet.
    • Använd Levene's Test för likhet av varianser.
  • Programvaruverktyg:
    • SPSS, SAS, Stata och R för avancerad statistisk analys.
  • Vidare läsning:
    • "Introduction to Statistical Learning" av Gareth James, Daniela Witten, Trevor Hastie och Robert Tibshirani.
    • "Statistical Methods" av George W. Snedecor och William G. Cochran.