🛠️

Whiz Tools

Build • Create • Innovate

T-Test kalkulators: veic visus t-testus un datu analīzi

Veic visu veidu t-testus: vienas paraugs, divu paraugu un pāra t-testus. Šis kalkulators ļauj veikt statistiskos hipotēžu testus par vidējām vērtībām, palīdzot datu analīzē un rezultātu interpretācijā.

T-Test kalkulators

sampleDataDescription
📚

Dokumentācija

T-Test kalkulators

Ievads

t-tests ir pamatstatistikas rīks, ko izmanto, lai noteiktu, vai pastāv būtiska atšķirība starp grupu vidējām vērtībām. Tas tiek plaši pielietots dažādās jomās, piemēram, psiholoģijā, medicīnā un biznesā, hipotēžu testēšanai. Šis kalkulators ļauj veikt visus t-testu veidus:

  • Vienas parauga t-tests: Pārbauda, vai viena grupas vidējā vērtība atšķiras no zināmās vērtības.
  • Divu paraugu t-tests (neatkarīgi paraugi): Salīdzina divu neatkarīgu grupu vidējās vērtības.
  • Pāra t-tests: Salīdzina vidējās vērtības no vienas grupas dažādos laikos (piemēram, pirms un pēc ārstēšanas).

T-Testu veidi

Paraugu dati Populācijas vidējā vērtība Vienas parauga t-tests Paraugs 1 Paraugs 2 Vidējā atšķirība Divu paraugu t-tests Pirms Pēc Atšķirības Pāra t-tests

Kā izmantot šo kalkulatoru

  1. Izvēlieties t-testu veidu:

    • Vienas parauga t-tests
    • Divu paraugu t-tests
    • Pāra t-tests
  2. Ievadiet nepieciešamos datus:

    • Vienas parauga t-testam:

      • Parauga vidējā vērtība (xˉ\bar{x})
      • Parauga standartnovirze (ss)
      • Parauga lielums (nn)
      • Populācijas vidējā vērtība (μ0\mu_0)
    • Divu paraugu t-testam:

      • Parauga 1 vidējā vērtība (xˉ1\bar{x}_1)
      • Parauga 1 standartnovirze (s1s_1)
      • Parauga 1 lielums (n1n_1)
      • Parauga 2 vidējā vērtība (xˉ2\bar{x}_2)
      • Parauga 2 standartnovirze (s2s_2)
      • Parauga 2 lielums (n2n_2)
      • Variācijas pieņēmums: Izvēlieties, vai variācijas tiek pieņemtas kā vienādas vai atšķirīgas.
    • Pāra t-testam:

      • Atšķirību dati: Ievadiet pāra atšķirības.
      • Alternatīvi, ievadiet Atšķirību vidējo vērtību (dˉ\bar{d}), Atšķirību standartnovirzi (sds_d) un Parauga lielumu (nn).
  3. Iestatiet nozīmīguma līmeni (α\alpha):

    • Bieži izvēles ir 0.05 95% uzticamības līmenim vai 0.01 99% uzticamības līmenim.
  4. Izvēlieties testa virzienu:

    • Divvirzienu tests: Pārbauda jebkādu atšķirību.
    • Vienvirzienu tests: Pārbauda virziena atšķirību (norādiet, vai testējat, vai ir lielāka vai mazāka).
  5. Noklikšķiniet uz pogas "Aprēķināt":

    • Kalkulators parādīs:

      • T-statistika
      • Brīvības pakāpes
      • P-vērtība
      • Secinājums: Vai noraidīt vai nenoraidīt nulles hipotēzi.

Pieņēmumi

Pirms t-testu izmantošanas pārliecinieties, ka ir izpildīti šādi pieņēmumi:

  • Normālība: Datiem jābūt aptuveni normāli sadalītiem.
  • Neatkarība: Novērojumiem jābūt neatkarīgiem cits no cita.
    • Divu paraugu t-testam divām grupām jābūt neatkarīgām.
    • Pāra t-testam atšķirībām jābūt neatkarīgām.
  • Vienādu variāciju pieņēmums:
    • Divu paraugu t-testam ar vienādām variācijām divu populāciju variācijas jābūt vienādām (homoskedastiskums).
    • Ja šis pieņēmums nav izpildīts, izmantojiet Welch's t-testu (atšķirīgas variācijas).

Formula

Vienas parauga t-tests

T-statistika tiek aprēķināta kā:

t=xˉμ0snt = \frac{\bar{x} - \mu_0}{\frac{s}{\sqrt{n}}}
  • xˉ\bar{x}: Parauga vidējā vērtība
  • μ0\mu_0: Populācijas vidējā vērtība nulles hipotēzes gadījumā
  • ss: Parauga standartnovirze
  • nn: Parauga lielums

Divu paraugu t-tests (neatkarīgi paraugi)

Pieņemot vienādas variācijas
t=xˉ1xˉ2sp1n1+1n2t = \frac{\bar{x}_1 - \bar{x}_2}{s_p \sqrt{\frac{1}{n_1} + \frac{1}{n_2}}}

Kopējā standartnovirze (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}}
Nevienādas variācijas (Welch's t-tests)
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}}}

Pāra t-tests

t=dˉsdnt = \frac{\bar{d}}{\frac{s_d}{\sqrt{n}}}
  • dˉ\bar{d}: Atšķirību vidējā vērtība
  • sds_d: Atšķirību standartnovirze
  • nn: Pāru skaits

Brīvības pakāpes

Vienas parauga un pāra t-testam:
df=n1df = n - 1
Divu paraugu t-testam ar vienādām variācijām:
df=n1+n22df = n_1 + n_2 - 2
Welch's t-testam:
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}}

Aprēķins

Kalkulators veic šādas darbības:

  1. Aprēķina T-statistiku, izmantojot atbilstošo formulu, pamatojoties uz izvēlēto testu.
  2. Nosaka brīvības pakāpes (df).
  3. Aprēķina P-vērtību, kas atbilst t-statistikai un df:
    • Izmanto t-sadalījumu, lai atrastu varbūtību.
  4. Salīdzina P-vērtību ar nozīmīguma līmeni (α\alpha):
    • Ja pαp \leq \alpha, noraidīt nulles hipotēzi.
    • Ja p>αp > \alpha, nenoraidīt nulles hipotēzi.
  5. Interpretē rezultātus:
    • Sniedz secinājumu testēšanas kontekstā.

Lietošanas gadījumi

Vienas parauga t-tests

  • Jaunu zāļu efektivitātes pārbaude:
    • Noteikt, vai vidējais atveseļošanās laiks ar jauno zāļu atšķiras no zināmā vidējā atveseļošanās laika.
  • Kvalitātes kontrole:
    • Pārbaudīt, vai ražoto daļu vidējais garums atšķiras no noteiktā standarta.

Divu paraugu t-tests

  • A/B testēšana mārketingā:
    • Salīdzināt konversijas likmes starp divām dažādām tīmekļa lapu dizainiem.
  • Izglītības pētījumi:
    • Novērtēt, vai pastāv atšķirība testu rezultātos starp divām mācību metodēm.

Pāra t-tests

  • Pirms un pēc pētījumi:
    • Novērtēt svara zudumu pirms un pēc diētas programmas.
  • Saskaņoti subjekti:
    • Salīdzināt asinsspiediena rādītājus pirms un pēc zāļu lietošanas tiem pašiem subjektiem.

Alternatīvas

Lai gan t-testus ir spēcīgi, tiem ir pieņēmumi, kas ne vienmēr var tikt izpildīti. Alternatīvas ietver:

  • Mann-Whitney U tests:
    • Neparametriska alternatīva divu paraugu t-testam, kad dati neseko normālai sadalījumam.
  • Wilcoxon Signed-Rank tests:
    • Neparametriska ekvivalents pāra t-testam.
  • ANOVA (variācijas analīze):
    • Tiek izmantots, salīdzinot vidējās vērtības vairāk nekā divām grupām.

Vēsture

t-tests izstrādāja William Sealy Gosset 1908. gadā, kurš publicēja ar pseidonīmu "Student", strādājot Guinness alus darītavā Dublinā. Tests tika izstrādāts, lai uzraudzītu stout kvalitāti, nosakot, vai paraugu partijas atbilst alus darītavas standartiem. Dēļ konfidencialitātes līgumiem Gosset izmantoja pseidonīmu "Student", kas noveda pie termina "Student's t-tests."

Laika gaitā t-tests ir kļuvis par stūrakmeni statistikas analīzē, plaši mācīts un pielietots dažādās zinātniskajās disciplīnās. Tas iezīmēja ceļu sarežģītāku statistikas metožu izstrādei un ir pamatā inferenciālajā statistikā.

Piemēri

Šeit ir koda piemēri, kā veikt Vienas parauga t-testu dažādās programmēšanas valodās:

Excel

1' Vienas parauga t-tests Excel VBA
2Sub OneSampleTTest()
3    Dim sampleData As Range
4    Set sampleData = Range("A1:A9") ' Aizvietojiet ar savu datu diapazonu
5    Dim hypothesizedMean As Double
6    hypothesizedMean = 50 ' Aizvietojiet ar savu hipotētisko vidējo
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-statistika: " & Format(tStat, "0.00")
20End Sub
21

R

1## Vienas parauga t-tests 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## Vienas parauga t-tests 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-statistika: {t_statistic:.2f}, P-vērtība: {p_value:.4f}")
8

JavaScript

1// Vienas parauga t-tests 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// Piemēra izmantošana:
11const sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
12const tStatistic = oneSampleTTest(sampleData, 50);
13console.log(`T-statistika: ${tStatistic.toFixed(2)}`);
14

MATLAB

1% Vienas parauga t-tests MATLAB
2sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
3[h, p, ci, stats] = ttest(sampleData, 50);
4disp(['T-statistika: ', num2str(stats.tstat)]);
5disp(['P-vērtība: ', 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-statistika: %.2f%n", tStatistic);
11        System.out.printf("P-vērtība: %.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-statistika: {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-statistika: %.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-statistika: %.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-statistika: " . number_format($tStatistic, 2);
15?>
16

Ruby

1## Vienas parauga t-tests 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-statistika: %.2f", t_statistic)
13

Rust

1// Vienas parauga t-tests 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-statistika: {:.2}", t_statistic);
14}
15

Skaitlisks piemērs

Uzdevums: Ražotājs apgalvo, ka akumulatora vidējais mūžs ir 50 stundas. Patērētāju grupa pārbauda 9 akumulatorus un reģistrē šādas ilgums (stundās):

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

Vai pastāv pierādījumi 0.05 nozīmīguma līmenī, lai norādītu, ka vidējais akumulatora mūžs atšķiras no 50 stundām?

Risinājums:

  1. Norādiet hipotēzes:

    • Nulles hipotēze (H0H_0): μ=50\mu = 50
    • Alternatīvā hipotēze (HaH_a): μ50\mu \neq 50
  2. Aprēķiniet parauga vidējo vērtību (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. Aprēķiniet parauga standartnovirzi (ss):

    s=(xixˉ)2n1=2.0s = \sqrt{\frac{\sum (x_i - \bar{x})^2}{n - 1}} = 2.0
  4. Aprēķiniet T-statistiku:

    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. Brīvības pakāpes:

    df=n1=8df = n - 1 = 8
  6. Nosakiet P-vērtību:

    • Par t=0.00t = 0.00 un df=8df = 8, p-vērtība ir 1.00.
  7. Secinājums:

    • Tā kā p-vērtība (1.00) > α\alpha (0.05), mēs nenoraidām nulles hipotēzi.
    • Interpretācija: Nav pietiekami daudz pierādījumu, lai norādītu, ka vidējais akumulatora mūžs atšķiras no 50 stundām.

Atsauces

  1. Gosset, W. S. (1908). "The Probable Error of a Mean". Biometrika, 6(1), 1–25. JSTOR.
  2. Student's t-tests. Vikipēdija. https://en.wikipedia.org/wiki/Student%27s_t-test
  3. GraphPad statistikas ceļvedis: Izpratne par t-testiem. Saite
  4. Laerd statistika: Neatkarīgs t-tests. Saite

Papildu resursi

  • Pieņēmumu pārbaudes:
    • Izmantojiet Shapiro-Wilk testu normālībai.
    • Izmantojiet Levene's testu vienādu variāciju pārbaudei.
  • Programmatūras rīki:
    • SPSS, SAS, Stata un R uzlabotai statistikas analīzei.
  • Papildu lasīšana:
    • "Introduction to Statistical Learning" autori: Gareth James, Daniela Witten, Trevor Hastie un Robert Tibshirani.
    • "Statistical Methods" autori: George W. Snedecor un William G. Cochran.