🛠️

Whiz Tools

Build • Create • Innovate

Калькулятор t-тестов для статистического анализа данных

Выполните все виды t-тестов: одновыборочный, двухвыборочный и парный t-тесты. Этот калькулятор позволяет проводить статистическое гипотезное тестирование для средних значений, помогая в анализе данных и интерпретации результатов.

Калькулятор T-теста

sampleDataDescription
📚

Документация

Калькулятор T-теста

Введение

T-тест — это фундаментальный статистический инструмент, используемый для определения, существует ли значительная разница между средними значениями групп. Он широко применяется в различных областях, таких как психология, медицина и бизнес, для проверки гипотез. Этот калькулятор позволяет выполнять все виды t-тестов:

  • Однообразный T-тест: Проверяет, отличается ли среднее значение одной группы от известного значения.
  • Двухвыборочный T-тест (независимые выборки): Сравнивает средние значения двух независимых групп.
  • Парный T-тест: Сравнивает средние значения одной и той же группы в разные моменты времени (например, до и после лечения).

Виды T-тестов

Данные выборки Среднее значение популяции Однообразный T-тест Выборка 1 Выборка 2 Разница средних Двухвыборочный T-тест До После Разницы Парный T-тест

Как использовать этот калькулятор

  1. Выберите тип T-теста:

    • Однообразный T-тест
    • Двухвыборочный T-тест
    • Парный T-тест
  2. Введите необходимые данные:

    • Для однообразного T-теста:

      • Среднее выборки (xˉ\bar{x})
      • Стандартное отклонение выборки (ss)
      • Размер выборки (nn)
      • Среднее значение популяции (μ0\mu_0)
    • Для двухвыборочного T-теста:

      • Среднее значение выборки 1 (xˉ1\bar{x}_1)
      • Стандартное отклонение выборки 1 (s1s_1)
      • Размер выборки 1 (n1n_1)
      • Среднее значение выборки 2 (xˉ2\bar{x}_2)
      • Стандартное отклонение выборки 2 (s2s_2)
      • Размер выборки 2 (n2n_2)
      • Предположение о дисперсии: Выберите, предполагаются ли равные или неравные дисперсии.
    • Для парного T-теста:

      • Данные различий: Введите парные различия.
      • Или введите Среднее значение различий (dˉ\bar{d}), Стандартное отклонение различий (sds_d) и Размер выборки (nn).
  3. Установите уровень значимости (α\alpha):

    • Общие выборы: 0.05 для уровня доверия 95% или 0.01 для уровня доверия 99%.
  4. Выберите направление теста:

    • Двусторонний тест: Проверяет на наличие любой разницы.
    • Односторонний тест: Проверяет на направленную разницу (укажите, проверяете ли на большее или меньшее).
  5. Нажмите кнопку "Рассчитать":

    • Калькулятор отобразит:

      • T-статистику
      • Степени свободы
      • P-значение
      • Заключение: Следует ли отклонить или не отклонять нулевую гипотезу.

Предположения

Перед использованием t-теста убедитесь, что выполнены следующие предположения:

  • Нормальность: Данные должны быть примерно нормально распределены.
  • Независимость: Наблюдения должны быть независимыми друг от друга.
    • Для двухвыборочного T-теста две группы должны быть независимыми.
    • Для парного T-теста различия должны быть независимыми.
  • Равенство дисперсий:
    • Для двухвыборочного T-теста с равными дисперсиями дисперсии двух популяций должны быть равны (гомоскедастичность).
    • Если это предположение не выполнено, используйте t-тест Уэлча (неравные дисперсии).

Формула

Однообразный T-тест

T-статистика рассчитывается как:

t=xˉμ0snt = \frac{\bar{x} - \mu_0}{\frac{s}{\sqrt{n}}}
  • xˉ\bar{x}: Среднее выборки
  • μ0\mu_0: Среднее значение популяции по нулевой гипотезе
  • ss: Стандартное отклонение выборки
  • nn: Размер выборки

Двухвыборочный T-тест (независимые выборки)

Предполагаются равные дисперсии
t=xˉ1xˉ2sp1n1+1n2t = \frac{\bar{x}_1 - \bar{x}_2}{s_p \sqrt{\frac{1}{n_1} + \frac{1}{n_2}}}

Объединенное стандартное отклонение (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}}
Неравные дисперсии (t-тест Уэлча)
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}}}

Парный T-тест

t=dˉsdnt = \frac{\bar{d}}{\frac{s_d}{\sqrt{n}}}
  • dˉ\bar{d}: Среднее значение различий
  • sds_d: Стандартное отклонение различий
  • nn: Количество пар

Степени свободы

Однообразный и парный T-тест:
df=n1df = n - 1
Двухвыборочный T-тест с равными дисперсиями:
df=n1+n22df = n_1 + n_2 - 2
t-тест Уэлча:
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}}

Расчет

Калькулятор выполняет следующие шаги:

  1. Вычисляет T-статистику с использованием соответствующей формулы в зависимости от выбранного теста.
  2. Определяет степени свободы (df).
  3. Вычисляет P-значение, соответствующее t-статистике и df:
    • Использует t-распределение для нахождения вероятности.
  4. Сравнивает P-значение с уровнем значимости (α\alpha):
    • Если pαp \leq \alpha, отклонить нулевую гипотезу.
    • Если p>αp > \alpha, не отклонять нулевую гипотезу.
  5. Интерпретирует результаты:
    • Предоставляет заключение в контексте теста.

Примеры использования

Однообразный T-тест

  • Проверка эффективности нового лекарства:
    • Определите, отличается ли среднее время восстановления с новым лекарством от известного среднего времени восстановления.
  • Контроль качества:
    • Проверьте, отклоняется ли средняя длина производимых деталей от установленного стандарта.

Двухвыборочный T-тест

  • A/B-тестирование в маркетинге:
    • Сравните коэффициенты конверсии между двумя разными дизайнами веб-страниц.
  • Образовательные исследования:
    • Оцените, есть ли разница в оценках между двумя методами обучения.

Парный T-тест

  • Исследования "до и после":
    • Оцените потерю веса до и после диетической программы.
  • Сопоставленные субъекты:
    • Сравните показатели артериального давления до и после применения лекарства на тех же субъектах.

Альтернативы

Хотя t-тесты являются мощными, у них есть предположения, которые могут не всегда выполняться. Альтернативы включают:

  • Тест Манна-Уитни:
    • Непараметрическая альтернатива двухвыборочному t-тесту, когда данные не следуют нормальному распределению.
  • Тест Вилкоксона на знаках:
    • Непараметрический эквивалент парного 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)
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 батарей и записывает следующие сроки службы (в часах):

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

Есть ли доказательства на уровне значимости 0.05, чтобы предположить, что средняя жизнь батареи отличается от 50 часов?

Решение:

  1. Сформулируйте гипотезы:

    • Нулевая гипотеза (H0H_0): μ=50\mu = 50
    • Альтернативная гипотеза (HaH_a): μ50\mu \neq 50
  2. Вычислите среднее выборки (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. Вычислите стандартное отклонение выборки (ss):

    s=(xixˉ)2n1=2.0s = \sqrt{\frac{\sum (x_i - \bar{x})^2}{n - 1}} = 2.0
  4. Вычислите T-статистику:

    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. Степени свободы:

    df=n1=8df = n - 1 = 8
  6. Определите P-значение:

    • Для t=0.00t = 0.00 и df=8df = 8 p-значение составляет 1.00.
  7. Заключение:

    • Поскольку p-значение (1.00) > α\alpha (0.05), мы не отклоняем нулевую гипотезу.
    • Интерпретация: Нет достаточных доказательств, чтобы предположить, что средняя жизнь батареи отличается от 50 часов.

Ссылки

  1. Госет, У. С. (1908). "Вероятная ошибка среднего". Биометрика, 6(1), 1–25. JSTOR.
  2. t-тест Студента. Википедия. https://en.wikipedia.org/wiki/Student%27s_t-test
  3. Руководство по статистике GraphPad: Понимание t-тестов. Ссылка
  4. Laerd Statistics: Независимый t-тест. Ссылка

Дополнительные ресурсы

  • Проверки предположений:
    • Используйте тест Шапиро-Уилка для проверки нормальности.
    • Используйте тест Левена для проверки равенства дисперсий.
  • Инструменты программного обеспечения:
    • SPSS, SAS, Stata и R для продвинутого статистического анализа.
  • Дальнейшее чтение:
    • "Введение в статистическое обучение" Гартета Джеймса, Даниэлы Уиттен, Тревора Хасти и Роберта Тибширани.
    • "Статистические методы" Джорджа В. Снедекора и Уильяма Г. Кохрана.