Калкулатор за t-тестове и статистическо тестване
Извършете всички видове t-тестове: t-тест с една извадка, t-тест с две извадки и свързан t-тест. Този калкулатор ви позволява да провеждате статистическо хипотетично тестване на средни стойности, което помага в анализа на данни и интерпретацията на резултатите.
Калкулатор за t-тест
Документация
КАЛКУЛАТОР ЗА T-ТЕСТ
Въведение
t-тестът е основен статистически инструмент, използван за определяне дали съществува значима разлика между средните стойности на групи. Той се прилага широко в различни области, като психология, медицина и бизнес за тестване на хипотези. Този калкулатор ви позволява да извършвате всички видове t-тестове:
- t-тест за една извадка: Тества дали средната стойност на една група се различава от известна стойност.
- t-тест за две извадки (независими извадки): Сравнява средните стойности на две независими групи.
- сдвоен t-тест: Сравнява средните стойности от същата група в различни моменти (например, преди и след лечение).
Видове t-тестове
Как да използвате този калкулатор
-
Изберете типа на t-теста:
- t-тест за една извадка
- t-тест за две извадки
- Сдвоен t-тест
-
Въведете необходимите входни данни:
-
За t-тест за една извадка:
- Средна стойност на извадката ()
- Стандартно отклонение на извадката ()
- Размер на извадката ()
- Средна стойност на популацията ()
-
За t-тест за две извадки:
- Средна стойност на извадка 1 ()
- Стандартно отклонение на извадка 1 ()
- Размер на извадката на извадка 1 ()
- Средна стойност на извадка 2 ()
- Стандартно отклонение на извадка 2 ()
- Размер на извадката на извадка 2 ()
- Предположение за варианс: Изберете дали вариансите се считат за равни или неравни.
-
За сдвоен t-тест:
- Данни за разликите: Въведете паричните разлики.
- Алтернативно, въведете Средна стойност на разликите (), Стандартно отклонение на разликите () и Размер на извадката ().
-
-
Задайте ниво на значимост ():
- Общи избори са 0.05 за 95% доверителен интервал или 0.01 за 99% доверителен интервал.
-
Изберете посоката на теста:
- Двустранен тест: Тества за всяка разлика.
- Едностранен тест: Тества за насочена разлика (уточнете дали тествате за по-голямо или по-малко).
-
Натиснете бутона "Изчисли":
-
Калкулаторът ще покаже:
- t-статистика
- Степени на свобода
- p-стойност
- Заключение: Дали да отхвърлите или да не отхвърлите нулевата хипотеза.
-
Предположения
Преди да използвате t-теста, уверете се, че следните предположения са изпълнени:
- Нормалност: Данните трябва да са приблизително нормално разпределени.
- Независимост: Наблюденията трябва да са независими едно от друго.
- За t-тест за две извадки, двете групи трябва да са независими.
- За сдвоен t-тест, разликите трябва да са независими.
- Равенство на вариансите:
- За t-тест за две извадки с равни варианси, вариансите на двете популации трябва да са равни (хомоскедастичност).
- Ако това предположение не е изпълнено, използвайте Welch's T-Test (неравни варианси).
Формула
t-тест за една извадка
t-статистиката се изчислява като:
- : Средна стойност на извадката
- : Средна стойност на популацията под нулевата хипотеза
- : Стандартно отклонение на извадката
- : Размер на извадката
t-тест за две извадки (независими извадки)
При предположение за равни варианси
Обединено стандартно отклонение ():
Неравни варианси (Welch's T-Test)
Сдвоен t-тест
- : Средна стойност на разликите
- : Стандартно отклонение на разликите
- : Брой двойки
Степени на свобода
t-тест за една извадка и сдвоен t-тест:
t-тест за две извадки с равни варианси:
Welch's T-Test:
Изчисление
Калкулаторът извършва следните стъпки:
- Изчислява t-статистиката с помощта на подходящата формула, в зависимост от избрания тест.
- Определя степените на свобода (df).
- Изчислява p-стойността, съответстваща на t-статистиката и df:
- Използва t-разпределението, за да намери вероятността.
- Сравнява p-стойността с нивото на значимост ():
- Ако , отхвърлете нулевата хипотеза.
- Ако , не отхвърляйте нулевата хипотеза.
- Интерпретира резултатите:
- Предоставя заключение в контекста на теста.
Примери за употреба
t-тест за една извадка
- Тестване на ефикасността на ново лекарство:
- Определете дали средното време за възстановяване с ново лекарство се различава от известното средно време за възстановяване.
- Контрол на качеството:
- Проверете дали средната дължина на произведените части отклонява от зададения стандарт.
t-тест за две извадки
- A/B тестване в маркетинга:
- Сравнете конверсионните ставки между два различни дизайна на уеб страници.
- Образователни изследвания:
- Оценете дали има разлика в резултатите от тестовете между два метода на обучение.
Сдвоен t-тест
- Изследвания преди и след:
- Оценете загубата на тегло преди и след програма за диета.
- Съпоставени субекти:
- Сравнете измерванията на кръвното налягане преди и след прилагане на медикаменти на същите субекти.
Алтернативи
Докато t-тестовете са мощни, те имат предположения, които не винаги могат да бъдат изпълнени. Алтернативи включват:
- Mann-Whitney U тест:
- Непараметрична алтернатива на t-теста за две извадки, когато данните не следват нормално разпределение.
- Wilcoxon Signed-Rank тест:
- Непараметричен еквивалент на сдвоения t-тест.
- ANOVA (Анализ на вариацията):
- Използва се, когато се сравняват средни стойности между повече от две групи.
История
t-тестът е разработен от Уилям Сили Госет през 1908 г., който публикува под псевдонима "Студент", докато работи в пивоварната Guinness в Дъблин. Тестът е проектиран да следи качеството на стаута, като определя дали пробни партиди са в съответствие с стандартите на пивоварната. Поради споразумения за конфиденциалност, Госет използва псевдонима "Студент", което води до термина "t-тест на Студента."
С времето t-тестът се е утвърдил като основен инструмент в статистическия анализ, широко преподаван и прилаган в различни научни дисциплини. Той проправи пътя за развитието на по-сложни статистически методи и е основополагающ в областта на инференциалната статистика.
Примери
Ето примери за код за извършване на t-тест за една извадка в различни програмни езици:
Excel
1' t-тест за една извадка в Excel VBA
2Sub OneSampleTTest()
3 Dim sampleData As Range
4 Set sampleData = Range("A1:A9") ' Заменете с вашия диапазон от данни
5 Dim hypothesizedMean As Double
6 hypothesizedMean = 50 ' Заменете с вашата хипотетична средна стойност
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-статистика: " & Format(tStat, "0.00")
20End Sub
21
R
1## t-тест за една извадка в 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## t-тест за една извадка в 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-статистика: {t_statistic:.2f}, p-стойност: {p_value:.4f}")
8
JavaScript
1// t-тест за една извадка в 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// Пример за употреба:
11const sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
12const tStatistic = oneSampleTTest(sampleData, 50);
13console.log(`t-статистика: ${tStatistic.toFixed(2)}`);
14
MATLAB
1% t-тест за една извадка в MATLAB
2sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
3[h, p, ci, stats] = ttest(sampleData, 50);
4disp(['t-статистика: ', num2str(stats.tstat)]);
5disp(['p-стойност: ', 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-статистика: %.2f%n", tStatistic);
11 System.out.printf("p-стойност: %.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-статистика: {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.0)
29 fmt.Printf("t-статистика: %.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-статистика: %.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-статистика: " . number_format($tStatistic, 2);
15?>
16
Ruby
1## t-тест за една извадка в 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-статистика: %.2f", t_statistic)
13
Rust
1// t-тест за една извадка в 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-статистика: {:.2}", t_statistic);
14}
15
Числов пример
Проблем: Производителят твърди, че средният живот на батерията е 50 часа. Група потребители тества 9 батерии и записва следните продължителности на живот (в часове):
Има ли доказателства на ниво значимост 0.05, за да се предположи, че средният живот на батерията се различава от 50 часа?
Решение:
-
Формулирайте хипотезите:
- Нулева хипотеза ():
- Алтернативна хипотеза ():
-
Изчислете средната стойност на извадката ():
-
Изчислете стандартното отклонение на извадката ():
-
Изчислете t-статистиката:
-
Степени на свобода:
-
Определете p-стойността:
- За и , p-стойността е 1.00.
-
Заключение:
- Тъй като p-стойност (1.00) > (0.05), ние не отхвърляме нулевата хипотеза.
- Интерпретация: Няма достатъчно доказателства, за да се предположи, че средният живот на батерията се различава от 50 часа.
Източници
- Госет, У. С. (1908). "Вероятната грешка на средната стойност". Биометрика, 6(1), 1–25. JSTOR.
- t-тест на Студента. Уикипедия. https://en.wikipedia.org/wiki/Student%27s_t-test
- Ръководство по статистика на GraphPad: Разбиране на t-тестовете. Линк
- Laerd Statistics: Независим t-тест. Линк
Допълнителни ресурси
- Проверки на предположенията:
- Използвайте Shapiro-Wilk тест за нормалност.
- Използвайте Levene's тест за равенство на вариансите.
- Инструменти за софтуер:
- SPSS, SAS, Stata и R за напреднал статистически анализ.
- Допълнително четене:
- "Въведение в статистическото обучение" от Гарт Джеймс, Даниела Уитън, Тревър Хастие и Робърт Тибширани.
- "Статистически методи" от Джордж У. Снедекор и Уилям Г. Кохран.
Обратна връзка
Щракнете върху тост за обратна връзка, за да започнете да давате обратна връзка за този инструмент
Свързани инструменти
Открийте още инструменти, които могат да бъдат полезни за вашия работен процес