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
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
Kā izmantot šo kalkulatoru
-
Izvēlieties t-testu veidu:
- Vienas parauga t-tests
- Divu paraugu t-tests
- Pāra t-tests
-
Ievadiet nepieciešamos datus:
-
Vienas parauga t-testam:
- Parauga vidējā vērtība ()
- Parauga standartnovirze ()
- Parauga lielums ()
- Populācijas vidējā vērtība ()
-
Divu paraugu t-testam:
- Parauga 1 vidējā vērtība ()
- Parauga 1 standartnovirze ()
- Parauga 1 lielums ()
- Parauga 2 vidējā vērtība ()
- Parauga 2 standartnovirze ()
- Parauga 2 lielums ()
- 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 (), Atšķirību standartnovirzi () un Parauga lielumu ().
-
-
Iestatiet nozīmīguma līmeni ():
- Bieži izvēles ir 0.05 95% uzticamības līmenim vai 0.01 99% uzticamības līmenim.
-
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).
-
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ā:
- : Parauga vidējā vērtība
- : Populācijas vidējā vērtība nulles hipotēzes gadījumā
- : Parauga standartnovirze
- : Parauga lielums
Divu paraugu t-tests (neatkarīgi paraugi)
Pieņemot vienādas variācijas
Kopējā standartnovirze ():
Nevienādas variācijas (Welch's t-tests)
Pāra t-tests
- : Atšķirību vidējā vērtība
- : Atšķirību standartnovirze
- : Pāru skaits
Brīvības pakāpes
Vienas parauga un pāra t-testam:
Divu paraugu t-testam ar vienādām variācijām:
Welch's t-testam:
Aprēķins
Kalkulators veic šādas darbības:
- Aprēķina T-statistiku, izmantojot atbilstošo formulu, pamatojoties uz izvēlēto testu.
- Nosaka brīvības pakāpes (df).
- Aprēķina P-vērtību, kas atbilst t-statistikai un df:
- Izmanto t-sadalījumu, lai atrastu varbūtību.
- Salīdzina P-vērtību ar nozīmīguma līmeni ():
- Ja , noraidīt nulles hipotēzi.
- Ja , nenoraidīt nulles hipotēzi.
- 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):
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:
-
Norādiet hipotēzes:
- Nulles hipotēze ():
- Alternatīvā hipotēze ():
-
Aprēķiniet parauga vidējo vērtību ():
-
Aprēķiniet parauga standartnovirzi ():
-
Aprēķiniet T-statistiku:
-
Brīvības pakāpes:
-
Nosakiet P-vērtību:
- Par un , p-vērtība ir 1.00.
-
Secinājums:
- Tā kā p-vērtība (1.00) > (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
- Gosset, W. S. (1908). "The Probable Error of a Mean". Biometrika, 6(1), 1–25. JSTOR.
- Student's t-tests. Vikipēdija. https://en.wikipedia.org/wiki/Student%27s_t-test
- GraphPad statistikas ceļvedis: Izpratne par t-testiem. Saite
- 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.
Atsauksmes
Noklikšķiniet uz atsauksmju paziņojuma, lai sāktu sniegt atsauksmes par šo rīku
Saistītie rīki
Atklājiet vairāk rīku, kas varētu būt noderīgi jūsu darba plūsmā