Whiz Tools
sampleDataDescription

T-Test Kalkulator

Introduksjon

t-testen er et grunnleggende statistisk verktøy som brukes for å avgjøre om det er en signifikant forskjell mellom gjennomsnittene til grupper. Den brukes mye innen ulike felt som psykologi, medisin og næringsliv for hypotesetesting. Denne kalkulatoren lar deg utføre alle typer t-tester:

  • Enkel T-Test: Tester om gjennomsnittet av en enkelt gruppe avviker fra en kjent verdi.
  • To-Prøve T-Test (Uavhengige Prøver): Sammenligner gjennomsnittene til to uavhengige grupper.
  • Parret T-Test: Sammenligner gjennomsnitt fra samme gruppe på forskjellige tidspunkter (f.eks. før og etter behandling).

Typer T-Tester

Prøvedata Populasjonsgjennomsnitt Enkel T-Test Prøve 1 Prøve 2 Gjennomsnittlig Forskjell To-Prøve T-Test Før Etter Forskjeller Parret T-Test

Hvordan Bruke Denne Kalkulatoren

  1. Velg Type T-Test:

    • Enkel T-Test
    • To-Prøve T-Test
    • Parret T-Test
  2. Skriv Inn Nødvendige Inndata:

    • For Enkel T-Test:

      • Prøve Gjennomsnitt (xˉ\bar{x})
      • Prøve Standardavvik (ss)
      • Prøve Størrelse (nn)
      • Populasjonsgjennomsnitt (μ0\mu_0)
    • For To-Prøve T-Test:

      • Gjennomsnitt av Prøve 1 (xˉ1\bar{x}_1)
      • Standardavvik av Prøve 1 (s1s_1)
      • Prøve Størrelse av Prøve 1 (n1n_1)
      • Gjennomsnitt av Prøve 2 (xˉ2\bar{x}_2)
      • Standardavvik av Prøve 2 (s2s_2)
      • Prøve Størrelse av Prøve 2 (n2n_2)
      • Varians Antagelse: Velg om variansene antas å være like eller ulike.
    • For Parret T-Test:

      • Forskjeller Data: Skriv inn de parvise forskjellene.
      • Alternativt, skriv inn Gjennomsnitt av Forskjeller (dˉ\bar{d}), Standardavvik av Forskjeller (sds_d), og Prøve Størrelse (nn).
  3. Sett Signifikansnivå (α\alpha):

    • Vanlige valg er 0.05 for et 95% konfidensnivå eller 0.01 for et 99% konfidensnivå.
  4. Velg Test Retning:

    • To-Tailed Test: Tester for enhver forskjell.
    • One-Tailed Test: Tester for en retning forskjell (spesifiser om testing for større eller mindre).
  5. Klikk på "Beregn" Knappen:

    • Kalkulatoren vil vise:

      • T-Statistikk
      • Frihetsgrader
      • P-Verdi
      • Konklusjon: Om å forkaste eller ikke forkaste nullhypotesen.

Antagelser

Før du bruker t-testen, må du sørge for at følgende antagelser er oppfylt:

  • Normalitet: Dataene bør være omtrent normalfordelte.
  • Uavhengighet: Observasjoner må være uavhengige av hverandre.
    • For To-Prøve T-Test, bør de to gruppene være uavhengige.
    • For Parret T-Test, bør forskjellene være uavhengige.
  • Likhet av Varianser:
    • For To-Prøve T-Test med Like Varianser, bør variansene til de to populasjonene være like (homoskedastisitet).
    • Hvis denne antagelsen ikke er oppfylt, bruk Welch's T-Test (ulike varianser).

Formel

Enkel T-Test

T-statistikken beregnes som:

t=xˉμ0snt = \frac{\bar{x} - \mu_0}{\frac{s}{\sqrt{n}}}
  • xˉ\bar{x}: Prøve gjennomsnitt
  • μ0\mu_0: Populasjonsgjennomsnitt under nullhypotesen
  • ss: Prøve standardavvik
  • nn: Prøve størrelse

To-Prøve T-Test (Uavhengige Prøver)

Like Varianser Antatt
t=xˉ1xˉ2sp1n1+1n2t = \frac{\bar{x}_1 - \bar{x}_2}{s_p \sqrt{\frac{1}{n_1} + \frac{1}{n_2}}}

Pooled standardavvik (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}}
Ulike 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}}}

Parret T-Test

t=dˉsdnt = \frac{\bar{d}}{\frac{s_d}{\sqrt{n}}}
  • dˉ\bar{d}: Gjennomsnitt av forskjellene
  • sds_d: Standardavvik av forskjellene
  • nn: Antall par

Frihetsgrader

Enkel og Parret T-Test:
df=n1df = n - 1
To-Prøve T-Test med Like 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}}

Beregning

Kalkulatoren utfører følgende trinn:

  1. Beregn T-Statistikken ved å bruke den passende formelen basert på den valgte testen.
  2. Bestem Frihetsgrader (df).
  3. Beregn P-Verdien som tilsvarer t-statistikken og df:
    • Bruker t-fordelingen for å finne sannsynligheten.
  4. Sammenlign P-Verdien med Signifikansnivået (α\alpha):
    • Hvis pαp \leq \alpha, forkast nullhypotesen.
    • Hvis p>αp > \alpha, feil å forkaste nullhypotesen.
  5. Tolk Resultatene:
    • Gi en konklusjon i konteksten av testen.

Bruksområder

Enkel T-Test

  • Testing av Ny Legemiddel Effektivitet:
    • Bestem om gjennomsnittlig gjenopprettingstid med et nytt legemiddel avviker fra den kjente gjennomsnittlige gjenopprettingstiden.
  • Kvalitetskontroll:
    • Sjekk om gjennomsnittlig lengde på produserte deler avviker fra den spesifiserte standarden.

To-Prøve T-Test

  • A/B Testing i Markedsføring:
    • Sammenlign konverteringsrater mellom to forskjellige nettsidedesign.
  • Utdanningsforskning:
    • Vurder om det er en forskjell i testresultater mellom to undervisningsmetoder.

Parret T-Test

  • Før og Etter Studier:
    • Vurder vekttap før og etter et diettprogram.
  • Matchede Subjekter:
    • Sammenlign blodtrykksmålinger før og etter administrering av medikament til de samme subjekt.

Alternativer

Selv om t-tester er kraftige, har de antagelser som kanskje ikke alltid er oppfylt. Alternativer inkluderer:

  • Mann-Whitney U Test:
    • Ikke-parametrisk alternativ til to-prøve t-test når dataene ikke følger en normalfordeling.
  • Wilcoxon Signed-Rank Test:
    • Ikke-parametrisk ekvivalent til den parrede t-testen.
  • ANOVA (Analyse av Varians):
    • Brukes når man sammenligner gjennomsnitt på tvers av mer enn to grupper.

Historie

T-testen ble utviklet av William Sealy Gosset i 1908, som publiserte under pseudonymet "Student" mens han jobbet ved Guinness Brewery i Dublin. Testen ble designet for å overvåke kvaliteten på stout ved å bestemme om prøvebatcher var i samsvar med bryggeriets standarder. På grunn av konfidensialitetsavtaler brukte Gosset pseudonymet "Student", noe som førte til termen "Student's t-test."

Over tid har t-testen blitt en hjørnestein i statistisk analyse, mye undervist og brukt i ulike vitenskapelige disipliner. Den banet vei for utviklingen av mer komplekse statistiske metoder og er grunnleggende innen inferensiell statistikk.

Eksempler

Her er kodeeksempler for å utføre en Enkel T-Test i forskjellige programmeringsspråk:

Excel

' Enkel T-Test i Excel VBA
Sub OneSampleTTest()
    Dim sampleData As Range
    Set sampleData = Range("A1:A9") ' Erstatt med ditt dataintervall
    Dim hypothesizedMean As Double
    hypothesizedMean = 50 ' Erstatt med ditt hypotetiske gjennomsnitt

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

R

## Enkel T-Test i 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

## Enkel T-Test i 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-Statistikk: {t_statistic:.2f}, P-Verdi: {p_value:.4f}")

JavaScript

// Enkel T-Test i 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;
}

// Eksempel på bruk:
const sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
const tStatistic = oneSampleTTest(sampleData, 50);
console.log(`T-Statistikk: ${tStatistic.toFixed(2)}`);

MATLAB

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

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

Ruby

## Enkel T-Test i 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-Statistikk: %.2f", t_statistic)

Rust

// Enkel T-Test i 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-Statistikk: {:.2}", t_statistic);
}

Numerisk Eksempel

Problem: En produsent hevder at gjennomsnittlig levetid for et batteri er 50 timer. En forbrukergruppe tester 9 batterier og registrerer følgende levetider (i timer):

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

Er det bevis på 0.05 signifikansnivå for å antyde at gjennomsnittlig batterilevetid avviker fra 50 timer?

Løsning:

  1. Angi Hypotesene:

    • Nullhypotese (H0H_0): μ=50\mu = 50
    • Alternativ Hypotese (HaH_a): μ50\mu \neq 50
  2. Beregn Prøve Gjennomsnitt (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. Beregn Prøve Standardavvik (ss):

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

    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. Bestem P-Verdi:

    • For t=0.00t = 0.00 og df=8df = 8, er p-verdien 1.00.
  7. Konklusjon:

    • Siden p-verdi (1.00) > α\alpha (0.05), feiler vi å forkaste nullhypotesen.
    • Tolkning: Det er ikke nok bevis for å antyde at gjennomsnittlig batterilevetid avviker fra 50 timer.

Referanser

  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: Forstå t-tester. Link
  4. Laerd Statistics: Uavhengig t-test. Link

Ytterligere Ressurser

  • Antagelseskontroller:
    • Bruk Shapiro-Wilk Test for normalitet.
    • Bruk Levene's Test for likhet av varianser.
  • Programvareverktøy:
    • SPSS, SAS, Stata, og R for avansert statistisk analyse.
  • Videre Lesing:
    • "Introduction to Statistical Learning" av Gareth James, Daniela Witten, Trevor Hastie, og Robert Tibshirani.
    • "Statistical Methods" av George W. Snedecor og William G. Cochran.
Feedback