🛠️

Whiz Tools

Build • Create • Innovate

T-testi Laskin: Suorita Yksinäyte, Kaksinäyte ja Paritetut

Suorita kaikenlaisia t-testejä: yksinäyte, kaksinäyte ja paritetut t-testit. Tämä laskin mahdollistaa tilastollisten hypoteesitestien suorittamisen keskiarvoille, mikä auttaa tietojen analysoinnissa ja tulosten tulkinnassa.

T-testi Laskin

sampleDataDescription
📚

Dokumentaatio

T-Test Laskin

Johdanto

t-testi on perustavanlaatuinen tilastollinen työkalu, jota käytetään määrittämään, onko ryhmien keskiarvojen välillä merkittävää eroa. Sitä sovelletaan laajalti eri aloilla, kuten psykologiassa, lääketieteessä ja liiketoiminnassa hypoteesin testaamiseen. Tämä laskin mahdollistaa kaikkien t-testaustyyppien suorittamisen:

  • Yksinäytteen t-testi: Testaa, poikkeaako yhden ryhmän keskiarvo tunnetusta arvosta.
  • Kaksi näytteen t-testi (riippumattomat näytteet): Vertaa kahden riippumattoman ryhmän keskiarvoja.
  • Paritettu t-testi: Vertaa samasta ryhmästä saatuja keskiarvoja eri aikoina (esim. ennen ja jälkeen hoidon).

T-Testin Tyypit

Näyte Data Populaation Keskiarvo Yksinäytteen t-testi Näyte 1 Näyte 2 Keskiarvo Ero Kaksi näytteen t-testi Ennen Jälkeen Erot Paritettu t-testi

Kuinka Käyttää Tätä Laskinta

  1. Valitse t-testin tyyppi:

    • Yksinäytteen t-testi
    • Kaksi näytteen t-testi
    • Paritettu t-testi
  2. Syötä vaaditut syötteet:

    • Yksinäytteen t-testille:

      • Näytteen Keskiarvo (xˉ\bar{x})
      • Näytteen Keskihajonta (ss)
      • Näytteen Koko (nn)
      • Populaation Keskiarvo (μ0\mu_0)
    • Kaksi näytteen t-testille:

      • Näytteen 1 Keskiarvo (xˉ1\bar{x}_1)
      • Näytteen 1 Keskihajonta (s1s_1)
      • Näytteen 1 Koko (n1n_1)
      • Näytteen 2 Keskiarvo (xˉ2\bar{x}_2)
      • Näytteen 2 Keskihajonta (s2s_2)
      • Näytteen 2 Koko (n2n_2)
      • Varianssin Oletus: Valitse, oletetaanko varianssien olevan yhtä suuret vai erikokoiset.
    • Paritetulle t-testille:

      • Erotusdata: Syötä parittaiset erot.
      • Vaihtoehtoisesti, syötä Erotusten Keskiarvo (dˉ\bar{d}), Erotusten Keskihajonta (sds_d) ja Näytteen Koko (nn).
  3. Aseta Merkitsevyystaso (α\alpha):

    • Yleisiä valintoja ovat 0.05 95 % luottamustasolle tai 0.01 99 % luottamustasolle.
  4. Valitse Testin Suunta:

    • Kaksisuuntainen Testi: Testaa eroa minkä tahansa suuntaan.
    • Yksisuuntainen Testi: Testaa suuntaavaa eroa (määritä, testataanko suurempaa vai pienempää).
  5. Napsauta "Laske" Painiketta:

    • Laskin näyttää:

      • T-Statistiikka
      • Vapausasteet
      • P-Arvo
      • Johtopäätös: Onko nollahypoteesi hylättävä vai ei.

Oletukset

Ennen t-testin käyttöä varmista, että seuraavat oletukset täyttyvät:

  • Normaalisuus: Datan tulisi olla suunnilleen normaalijakautunutta.
  • Itsenäisyys: Havainnot on oltava riippumattomia toisistaan.
    • Kaksi näytteen t-testille kaksi ryhmää on oltava riippumattomia.
    • Paritetulle t-testille erotusten on oltava riippumattomia.
  • Varianssien Yhtäläisyys:
    • Kaksi näytteen t-testille, jossa oletetaan yhtä suuret varianssit, kahden populaation varianssien tulisi olla yhtä suuret (homoskedastisuus).
    • Jos tämä oletus ei pidä paikkaansa, käytä Welchin t-testiä (erikokoiset varianssit).

Kaava

Yksinäytteen t-testi

T-statistiikka lasketaan seuraavasti:

t=xˉμ0snt = \frac{\bar{x} - \mu_0}{\frac{s}{\sqrt{n}}}
  • xˉ\bar{x}: Näytteen keskiarvo
  • μ0\mu_0: Populaation keskiarvo nollahypoteesin mukaan
  • ss: Näytteen keskihajonta
  • nn: Näytteen koko

Kaksi näytteen t-testi (riippumattomat näytteet)

Oletetaan, että varianssit ovat yhtä suuret
t=xˉ1xˉ2sp1n1+1n2t = \frac{\bar{x}_1 - \bar{x}_2}{s_p \sqrt{\frac{1}{n_1} + \frac{1}{n_2}}}

Yhdistetty keskihajonta (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}}
Erilaiset varianssit (Welchin t-testi)
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}}}

Paritettu t-testi

t=dˉsdnt = \frac{\bar{d}}{\frac{s_d}{\sqrt{n}}}
  • dˉ\bar{d}: Erojen keskiarvo
  • sds_d: Erojen keskihajonta
  • nn: Parien määrä

Vapausasteet

Yksinäytteen ja paritetun t-testin:
df=n1df = n - 1
Kaksi näytteen t-testille, jossa oletetaan yhtä suuret varianssit:
df=n1+n22df = n_1 + n_2 - 2
Welchin t-testille:
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}}

Laskenta

Laskin suorittaa seuraavat vaiheet:

  1. Laske T-Statistiikka käyttäen valittua kaavaa.
  2. Määritä Vapausasteet (df).
  3. Laske P-Arvo vastaavasti t-statistiikalle ja df:lle:
    • Käyttää t-jakaumaa löytääkseen todennäköisyyden.
  4. Vertaile P-Arvoa Merkitsevyystasoon (α\alpha):
    • Jos pαp \leq \alpha, hylkää nollahypoteesi.
    • Jos p>αp > \alpha, älä hylkää nollahypoteesia.
  5. Tulkitse Tulokset:
    • Anna johtopäätös testin kontekstissa.

Käyttötapaukset

Yksinäytteen t-testi

  • Uuden Lääkkeen Tehokkuuden Testaus:
    • Määritä, poikkeaako keskimääräinen toipumisaika uuden lääkkeen avulla tunnetusta keskimääräisestä toipumisajasta.
  • Laatuvalvonta:
    • Tarkista, poikkeaako valmistettujen osien keskimääräinen pituus määritellystä standardista.

Kaksi näytteen t-testi

  • A/B Testaus Markkinoinnissa:
    • Vertaa konversioprosentteja kahden eri verkkosivun suunnittelun välillä.
  • Koulutustutkimus:
    • Arvioi, onko eroa testituloksissa kahden opetusmenetelmän välillä.

Paritettu t-testi

  • Ennen ja Jälkeen Tutkimukset:
    • Arvioi painonpudotus ennen ja jälkeen ruokavalion.
  • Vastaavat Aineistot:
    • Vertaa verenpainemittauksia ennen ja jälkeen lääkityksen antamista samoille henkilöille.

Vaihtoehdot

Vaikka t-testit ovat tehokkaita, niillä on oletuksia, joita ei aina voida täyttää. Vaihtoehtoja ovat:

  • Mann-Whitney U Testi:
    • Ei-parametrinen vaihtoehto kahden näytteen t-testille, kun data ei noudata normaalia jakaumaa.
  • Wilcoxonin Merkittyjen Erojen Testi:
    • Ei-parametrinen vastine paritetulle t-testille.
  • ANOVA (Varianssianalyysi):
    • Käytetään, kun vertaillaan keskiarvoja yli kahden ryhmän.

Historia

T-testi kehitti William Sealy Gosset vuonna 1908, joka julkaisi salanimellä "Student" työskennellessään Guinnessin panimolla Dublinin kaupungissa. Testi suunniteltiin stoutin laadun valvomiseksi määrittämällä, ovatko näytteen erät yhdenmukaisia panimon standardien kanssa. Salassapitosopimusten vuoksi Gosset käytti salanimeä "Student", mikä johti termin "Studentin t-testi" syntyyn.

Ajan myötä t-testistä on tullut kulmakivi tilastollisessa analyysissä, ja sitä opetetaan ja sovelletaan laajalti eri tieteellisillä aloilla. Se avasi tietä monimutkaisempien tilastollisten menetelmien kehittämiselle ja on perusta inferentiaaliselle tilastotiolle.

Esimerkit

Tässä on koodiesimerkkejä Yksinäytteen t-testin suorittamisesta eri ohjelmointikielillä:

Excel

1' Yksinäytteen t-testin Excel VBA:ssa
2Sub OneSampleTTest()
3    Dim sampleData As Range
4    Set sampleData = Range("A1:A9") ' Korvaa omalla datasi alueella
5    Dim hypothesizedMean As Double
6    hypothesizedMean = 50 ' Korvaa omalla oletetulla keskiarvolla
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-Statistiikka: " & Format(tStat, "0.00")
20End Sub
21

R

1## Yksinäytteen t-testi R:ssä
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## Yksinäytteen t-testi Pythonissa
5sample_data = [51, 49, 52, 48, 50, 47, 53, 49, 51]
6t_statistic, p_value = stats.ttest_1samp(sample_data, 50)
7print(f"T-Statistiikka: {t_statistic:.2f}, P-Arvo: {p_value:.4f}")
8

JavaScript

1// Yksinäytteen t-testi JavaScriptissä
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// Esimerkin käyttö:
11const sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
12const tStatistic = oneSampleTTest(sampleData, 50);
13console.log(`T-Statistiikka: ${tStatistic.toFixed(2)}`);
14

MATLAB

1% Yksinäytteen t-testi MATLAB:ssa
2sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
3[h, p, ci, stats] = ttest(sampleData, 50);
4disp(['T-Statistiikka: ', num2str(stats.tstat)]);
5disp(['P-Arvo: ', 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-Statistiikka: %.2f%n", tStatistic);
11        System.out.printf("P-Arvo: %.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-Statistiikka: {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    sample_data := []float64{51, 49, 52, 48, 50, 47, 53, 49, 51}
28    t_statistic := oneSampleTTest(sample_data, 50.0)
29    fmt.Printf("T-Statistiikka: %.2f\n", t_statistic)
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-Statistiikka: %.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-Statistiikka: " . number_format($tStatistic, 2);
15?>
16

Ruby

1## Yksinäytteen t-testi Rubyssa
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-Statistiikka: %.2f", t_statistic)
13

Rust

1// Yksinäytteen t-testi Rustissa
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-Statistiikka: {:.2}", t_statistic);
14}
15

Numeraalinen Esimerkki

Ongelma: Valmistaja väittää, että akun keskimääräinen käyttöikä on 50 tuntia. Kuluttajaryhmä testaa 9 akkua ja kirjaa seuraavat käyttöajat (tunneissa):

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

Onko olemassa todisteita 0.05 merkitsevyystasolla, joka viittaa siihen, että akun keskimääräinen käyttöikä poikkeaa 50 tunnista?

Ratkaisu:

  1. Määritä Hypoteesit:

    • Nollahypoteesi (H0H_0): μ=50\mu = 50
    • Vaihtoehtoinen Hypoteesi (HaH_a): μ50\mu \neq 50
  2. Laske Näytteen Keskiarvo (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. Laske Näytteen Keskihajonta (ss):

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

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

    df=n1=8df = n - 1 = 8
  6. Määritä P-Arvo:

    • t=0.00t = 0.00 ja df=8df = 8, p-arvo on 1.00.
  7. Johtopäätös:

    • Koska p-arvo (1.00) > \alpha (0.05), emme hylkää nollahypoteesia.
    • Tulkitseminen: Ei ole tarpeeksi todisteita viittaamaan siihen, että akun keskimääräinen käyttöikä poikkeaa 50 tunnista.

Viitteet

  1. Gosset, W. S. (1908). "The Probable Error of a Mean". Biometrika, 6(1), 1–25. JSTOR.
  2. Studentin t-testi. Wikipedia. https://en.wikipedia.org/wiki/Student%27s_t-test
  3. GraphPad Statistics Guide: Ymmärtäminen t-testeistä. Link
  4. Laerd Statistics: Riippumaton t-testi. Link

Lisäresurssit

  • Oletusten Tarkistukset:
    • Käytä Shapiro-Wilk Testiä normaalisuuden testaamiseen.
    • Käytä Levene's Testiä varianssien yhtäläisyyden testaamiseen.
  • Ohjelmistotyökalut:
    • SPSS, SAS, Stata ja R edistyneeseen tilastolliseen analyysiin.
  • Lisälukeminen:
    • "Introduction to Statistical Learning" kirjoittaneet Gareth James, Daniela Witten, Trevor Hastie ja Robert Tibshirani.
    • "Statistical Methods" kirjoittaneet George W. Snedecor ja William G. Cochran.