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
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
Hur man använder denna kalkylator
-
Välj typ av T-Test:
- Ett-sample T-Test
- Två-sample T-Test
- Parat T-Test
-
Ange nödvändiga indata:
-
För Ett-sample T-Test:
- Provmedel ()
- Provstandardavvikelse ()
- Provstorlek ()
- Populationsmedel ()
-
För Två-sample T-Test:
- Medel av Prov 1 ()
- Standardavvikelse av Prov 1 ()
- Provstorlek av Prov 1 ()
- Medel av Prov 2 ()
- Standardavvikelse av Prov 2 ()
- Provstorlek av Prov 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 (), Standardavvikelse av Skillnader () och Provstorlek ().
-
-
Ställ in signifikansnivån ():
- Vanliga val är 0.05 för en 95% konfidensnivå eller 0.01 för en 99% konfidensnivå.
-
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).
-
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:
- : Provmedel
- : Populationsmedel under nollhypotesen
- : Provstandardavvikelse
- : Provstorlek
Två-sample T-Test (Oberoende prover)
Lika varianser antagna
Pooled standardavvikelse ():
Olika varianser (Welch's T-Test)
Parat T-Test
- : Medel av skillnaderna
- : Standardavvikelse av skillnaderna
- : Antal par
Frihetsgrader
Ett-sample och Parat T-Test:
Två-sample T-Test med lika varianser:
Welch's T-Test:
Beräkning
Kalkylatorn utför följande steg:
- Beräkna T-Statistiken med hjälp av lämplig formel baserat på det valda testet.
- Bestäm frihetsgraderna (df).
- Beräkna P-Värdet motsvarande t-statistiken och df:
- Använder t-fördelningen för att hitta sannolikheten.
- Jämför P-Värdet med signifikansnivån ():
- Om , förkasta nollhypotesen.
- Om , förkasta inte nollhypotesen.
- 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):
Finns det bevis på 0.05 signifikansnivå för att antyda att den genomsnittliga batterilivslängden skiljer sig från 50 timmar?
Lösning:
-
Ange hypoteserna:
- Nollhypotes ():
- Alternativ hypotes ():
-
Beräkna provmedel ():
-
Beräkna provstandardavvikelse ():
-
Beräkna T-Statistik:
-
Frihetsgrader:
-
Bestäm P-Värde:
- För och , är p-värdet 1.00.
-
Slutsats:
- Eftersom p-värde (1.00) > (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
- 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: Förstå t-tester. Link
- 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.
Återkoppling
Klicka på återkopplingsmeddelandet för att börja ge återkoppling om detta verktyg
Relaterade verktyg
Upptäck fler verktyg som kan vara användbara för ditt arbetsflöde