T-Test Beregner til Statistisk Hypoteseprøvning
Udfør alle slags t-tests: en-sample, to-sample og parret t-tests. Denne beregner giver dig mulighed for at udføre statistisk hypoteseprøvning for gennemsnit, hvilket hjælper med dataanalyse og fortolkning af resultater.
T-Test Beregner
Dokumentation
T-Test Beregner
Introduktion
t-testen er et grundlæggende statistisk værktøj, der bruges til at bestemme, om der er en signifikant forskel mellem gennemsnittene af grupper. Det anvendes bredt inden for forskellige områder som psykologi, medicin og erhvervsliv til hypotesetestning. Denne beregner giver dig mulighed for at udføre alle slags t-tests:
- One-Sample T-Test: Tester, om gennemsnittet af en enkelt gruppe adskiller sig fra en kendt værdi.
- Two-Sample T-Test (Uafhængige Prøver): Sammenligner gennemsnittene af to uafhængige grupper.
- Paired T-Test: Sammenligner gennemsnit fra den samme gruppe på forskellige tidspunkter (f.eks. før og efter behandling).
Typer af T-Tests
Sådan Bruger Du Denne Beregner
-
Vælg Typen af T-Test:
- One-Sample T-Test
- Two-Sample T-Test
- Paired T-Test
-
Indtast de Nødvendige Input:
-
For One-Sample T-Test:
- Prøve Gennemsnit ()
- Prøve Standardafvigelse ()
- Prøve Størrelse ()
- Population Gennemsnit ()
-
For Two-Sample T-Test:
- Gennemsnit af Prøve 1 ()
- Standardafvigelse af Prøve 1 ()
- Prøve Størrelse af Prøve 1 ()
- Gennemsnit af Prøve 2 ()
- Standardafvigelse af Prøve 2 ()
- Prøve Størrelse af Prøve 2 ()
- Varians Antagelse: Vælg om variansen antages at være lig med eller ulige.
-
For Paired T-Test:
- Forskelle Data: Indtast de parvise forskelle.
- Alternativt, indtast Gennemsnit af Forskelle (), Standardafvigelse af Forskelle (), og Prøve Størrelse ().
-
-
Sæt Signifikansniveauet ():
- Almindelige valg er 0.05 for et 95% konfidensniveau eller 0.01 for et 99% konfidensniveau.
-
Vælg Test Retning:
- To-Tailed Test: Tester for enhver forskel.
- One-Tailed Test: Tester for en retning forskel (specificer om testen er for større end eller mindre end).
-
Klik på "Beregne" Knappen:
-
Beregneren vil vise:
- T-Statistik
- Frihedsgrader
- P-Værdi
- Konklusion: Om at afvise eller ikke afvise nulhypotesen.
-
Antagelser
Før du bruger t-testen, skal du sikre dig, at følgende antagelser er opfyldt:
- Normalitet: Dataene skal være tilnærmelsesvis normalt fordelt.
- Uafhængighed: Observationer skal være uafhængige af hinanden.
- For Two-Sample T-Test skal de to grupper være uafhængige.
- For Paired T-Test skal forskellene være uafhængige.
- Lighed af Varians:
- For Two-Sample T-Test med Lige Varians, skal variansen af de to populationer være lig med (homoskedasticitet).
- Hvis denne antagelse ikke er opfyldt, skal du bruge Welch's T-Test (ulige varians).
Formler
One-Sample T-Test
T-statistikken beregnes som:
- : Prøve gennemsnit
- : Population gennemsnit under nulhypotesen
- : Prøve standardafvigelse
- : Prøve størrelse
Two-Sample T-Test (Uafhængige Prøver)
Lige Varians Antaget
Pooled standardafvigelse ():
Ulige Varians (Welch's T-Test)
Paired T-Test
- : Gennemsnit af forskellene
- : Standardafvigelse af forskellene
- : Antal par
Frihedsgrader
One-Sample og Paired T-Test:
Two-Sample T-Test med Lige Varians:
Welch's T-Test:
Beregning
Beregneren udfører følgende trin:
- Beregn T-Statistik ved hjælp af den relevante formel baseret på den valgte test.
- Bestem Frihedsgrader (df).
- Beregn P-Værdi svarende til t-statistikken og df:
- Bruger t-fordelingen til at finde sandsynligheden.
- Sammenlign P-Værdi med Signifikansniveauet ():
- Hvis , afvis nulhypotesen.
- Hvis , undlad at afvise nulhypotesen.
- Fortolk Resultaterne:
- Giv en konklusion i konteksten af testen.
Anvendelsesområder
One-Sample T-Test
- Test af Ny Lægemiddel Effektivitet:
- Bestem om den gennemsnitlige restitutionstid med et nyt lægemiddel adskiller sig fra den kendte gennemsnitlige restitutionstid.
- Kvalitetskontrol:
- Tjek om den gennemsnitlige længde af fremstillede dele afviger fra den specificerede standard.
Two-Sample T-Test
- A/B Testning i Markedsføring:
- Sammenlign konverteringsrater mellem to forskellige webside design.
- Uddannelsesforskning:
- Vurdere om der er en forskel i testresultater mellem to undervisningsmetoder.
Paired T-Test
- Før og Efter Studier:
- Vurder vægttab før og efter et diætprogram.
- Matchede Emner:
- Sammenlign blodtryksmålinger før og efter administration af medicin til de samme emner.
Alternativer
Selvom t-tests er kraftfulde, har de antagelser, der måske ikke altid er opfyldt. Alternativer inkluderer:
- Mann-Whitney U Test:
- Non-parametrisk alternativ til to-prøve t-test, når data ikke følger en normal fordeling.
- Wilcoxon Signed-Rank Test:
- Non-parametrisk ækvivalent til paired t-test.
- ANOVA (Analyse af Varians):
- Bruges, når man sammenligner gennemsnit på tværs af mere end to grupper.
Historie
T-testen blev udviklet af William Sealy Gosset i 1908, som offentliggjorde under pseudonymet "Student" mens han arbejdede på Guinness Brewery i Dublin. Testen blev designet til at overvåge kvaliteten af stout ved at bestemme, om prøvepartier var konsistente med bryggeriets standarder. På grund af fortrolighedsaftaler brugte Gosset pseudonymet "Student", hvilket førte til termen "Student's t-test."
Over tid er t-testen blevet en hjørnesten i statistisk analyse, bredt undervist og anvendt i forskellige videnskabelige discipliner. Den banede vejen for udviklingen af mere komplekse statistiske metoder og er grundlæggende inden for inferentiel statistik.
Eksempler
Her er kodeeksempler til udførelse af en One-Sample T-Test i forskellige programmeringssprog:
Excel
1' One-Sample T-Test i Excel VBA
2Sub OneSampleTTest()
3 Dim sampleData As Range
4 Set sampleData = Range("A1:A9") ' Erstat med dit dataområde
5 Dim hypothesizedMean As Double
6 hypothesizedMean = 50 ' Erstat med dit hypotetiske gennemsnit
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## One-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## One-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ærdi: {p_value:.4f}")
8
JavaScript
1// One-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// Eksempel brug:
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% One-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ærdi: ', 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ærdi: %.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## One-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// One-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
Numerisk Eksempel
Problem: En producent hævder, at den gennemsnitlige levetid for et batteri er 50 timer. En forbrugergruppe tester 9 batterier og registrerer følgende levetider (i timer):
Er der bevis på et 0.05 signifikansniveau for at antyde, at den gennemsnitlige batterilevetid adskiller sig fra 50 timer?
Løsning:
-
Angiv Hypoteserne:
- Nulhypotese ():
- Alternativ Hypotese ():
-
Beregn Prøve Gennemsnit ():
-
Beregn Prøve Standardafvigelse ():
-
Beregn T-Statistik:
-
Frihedsgrader:
-
Bestem P-Værdi:
- For og , er p-værdien 1.00.
-
Konklusion:
- Da p-værdi (1.00) > (0.05), undlader vi at afvise nulhypotesen.
- Fortolkning: Der er ikke tilstrækkelig bevis til at antyde, at den gennemsnitlige batterilevetid adskiller sig fra 50 timer.
Referencer
- 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: Forstå t-tests. Link
- Laerd Statistics: Uafhængig t-test. Link
Yderligere Ressourcer
- Antagelses Kontroller:
- Brug Shapiro-Wilk Test for normalitet.
- Brug Levene's Test for lighed af varians.
- Software Værktøjer:
- SPSS, SAS, Stata, og R til avanceret statistisk analyse.
- Yderligere Læsning:
- "Introduction to Statistical Learning" af Gareth James, Daniela Witten, Trevor Hastie, og Robert Tibshirani.
- "Statistical Methods" af George W. Snedecor og William G. Cochran.
Feedback
Klik på feedback-toasten for at begynde at give feedback om dette værktøj.
Relaterede Værktøjer
Opdag flere værktøjer, der måske kan være nyttige for din arbejdsgang.