Whiz Tools
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-тест за две извадки с равни варианси, вариансите на двете популации трябва да са равни (хомоскедастичност).
    • Ако това предположение не е изпълнено, използвайте Welch's T-Test (неравни варианси).

Формула

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}}
Неравни варианси (Welch's T-Test)
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-тест за една извадка и сдвоен t-тест:
df=n1df = n - 1
t-тест за две извадки с равни варианси:
df=n1+n22df = n_1 + n_2 - 2
Welch's T-Test:
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-тестовете са мощни, те имат предположения, които не винаги могат да бъдат изпълнени. Алтернативи включват:

  • Mann-Whitney U тест:
    • Непараметрична алтернатива на t-теста за две извадки, когато данните не следват нормално разпределение.
  • Wilcoxon Signed-Rank тест:
    • Непараметричен еквивалент на сдвоения t-тест.
  • ANOVA (Анализ на вариацията):
    • Използва се, когато се сравняват средни стойности между повече от две групи.

История

t-тестът е разработен от Уилям Сили Госет през 1908 г., който публикува под псевдонима "Студент", докато работи в пивоварната Guinness в Дъблин. Тестът е проектиран да следи качеството на стаута, като определя дали пробни партиди са в съответствие с стандартите на пивоварната. Поради споразумения за конфиденциалност, Госет използва псевдонима "Студент", което води до термина "t-тест на Студента."

С времето t-тестът се е утвърдил като основен инструмент в статистическия анализ, широко преподаван и прилаган в различни научни дисциплини. Той проправи пътя за развитието на по-сложни статистически методи и е основополагающ в областта на инференциалната статистика.

Примери

Ето примери за код за извършване на t-тест за една извадка в различни програмни езици:

Excel

' t-тест за една извадка в Excel VBA
Sub OneSampleTTest()
    Dim sampleData As Range
    Set sampleData = Range("A1:A9") ' Заменете с вашия диапазон от данни
    Dim hypothesizedMean As Double
    hypothesizedMean = 50 ' Заменете с вашата хипотетична средна стойност

    Dim sampleMean As Double
    Dim sampleStdDev As Double
    Dim sampleSize As Integer
    Dim tStat As Double

    sampleMean = Application.WorksheetFunction.Average(sampleData)
    sampleStdDev = Application.WorksheetFunction.StDev_S(sampleData)
    sampleSize = sampleData.Count

    tStat = (sampleMean - hypothesizedMean) / (sampleStdDev / Sqr(sampleSize))

    MsgBox "t-статистика: " & Format(tStat, "0.00")
End Sub

R

## t-тест за една извадка в R
sample_data <- c(51, 49, 52, 48, 50, 47, 53, 49, 51)
t_test_result <- t.test(sample_data, mu = 50)
print(t_test_result)

Python

import numpy as np
from scipy import stats

## t-тест за една извадка в Python
sample_data = [51, 49, 52, 48, 50, 47, 53, 49, 51]
t_statistic, p_value = stats.ttest_1samp(sample_data, 50)
print(f"t-статистика: {t_statistic:.2f}, p-стойност: {p_value:.4f}")

JavaScript

// t-тест за една извадка в JavaScript
function oneSampleTTest(sample, mu0) {
  const n = sample.length;
  const mean = sample.reduce((a, b) => a + b) / n;
  const sd = Math.sqrt(sample.map(x => (x - mean) ** 2).reduce((a, b) => a + b) / (n - 1));
  const t = (mean - mu0) / (sd / Math.sqrt(n));
  return t;
}

// Пример за употреба:
const sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
const tStatistic = oneSampleTTest(sampleData, 50);
console.log(`t-статистика: ${tStatistic.toFixed(2)}`);

MATLAB

% t-тест за една извадка в MATLAB
sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
[h, p, ci, stats] = ttest(sampleData, 50);
disp(['t-статистика: ', num2str(stats.tstat)]);
disp(['p-стойност: ', num2str(p)]);

Java

import org.apache.commons.math3.stat.inference.TTest;

public class OneSampleTTest {
    public static void main(String[] args) {
        double[] sampleData = {51, 49, 52, 48, 50, 47, 53, 49, 51};
        TTest tTest = new TTest();
        double mu = 50;
        double tStatistic = tTest.t(mu, sampleData);
        double pValue = tTest.tTest(mu, sampleData);
        System.out.printf("t-статистика: %.2f%n", tStatistic);
        System.out.printf("p-стойност: %.4f%n", pValue);
    }
}

C#

using System;
using MathNet.Numerics.Statistics;

class OneSampleTTest
{
    static void Main()
    {
        double[] sampleData = {51, 49, 52, 48, 50, 47, 53, 49, 51};
        double mu0 = 50;
        int n = sampleData.Length;
        double mean = Statistics.Mean(sampleData);
        double stdDev = Statistics.StandardDeviation(sampleData);
        double tStatistic = (mean - mu0) / (stdDev / Math.Sqrt(n));
        Console.WriteLine($"t-статистика: {tStatistic:F2}");
    }
}

Go

package main

import (
    "fmt"
    "math"
)

func oneSampleTTest(sample []float64, mu0 float64) float64 {
    n := float64(len(sample))
    var sum, mean, sd float64

    for _, v := range sample {
        sum += v
    }
    mean = sum / n

    for _, v := range sample {
        sd += math.Pow(v - mean, 2)
    }
    sd = math.Sqrt(sd / (n - 1))

    t := (mean - mu0) / (sd / math.Sqrt(n))
    return t
}

func main() {
    sampleData := []float64{51, 49, 52, 48, 50, 47, 53, 49, 51}
    tStatistic := oneSampleTTest(sampleData, 50.0)
    fmt.Printf("t-статистика: %.2f\n", tStatistic);
}

Swift

import Foundation

func oneSampleTTest(sample: [Double], mu0: Double) -> Double {
    let n = Double(sample.count)
    let mean = sample.reduce(0, +) / n
    let sd = sqrt(sample.map { pow($0 - mean, 2) }.reduce(0, +) / (n - 1))
    let t = (mean - mu0) / (sd / sqrt(n))
    return t
}

let sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51]
let tStatistic = oneSampleTTest(sample: sampleData, mu0: 50)
print(String(format: "t-статистика: %.2f", tStatistic))

PHP

<?php
function oneSampleTTest($sample, $mu0) {
    $n = count($sample);
    $mean = array_sum($sample) / $n;
    $sd = sqrt(array_sum(array_map(function($x) use ($mean) {
        return pow($x - $mean, 2);
    }, $sample)) / ($n - 1));
    $t = ($mean - $mu0) / ($sd / sqrt($n));
    return $t;
}

$sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
$tStatistic = oneSampleTTest($sampleData, 50);
echo "t-статистика: " . number_format($tStatistic, 2);
?>

Ruby

## t-тест за една извадка в Ruby
def one_sample_t_test(sample, mu0)
  n = sample.size
  mean = sample.sum(0.0) / n
  sd = Math.sqrt(sample.map { |x| (x - mean)**2 }.sum / (n - 1))
  t = (mean - mu0) / (sd / Math.sqrt(n))
  t
end

sample_data = [51, 49, 52, 48, 50, 47, 53, 49, 51]
t_statistic = one_sample_t_test(sample_data, 50)
puts format("t-статистика: %.2f", t_statistic)

Rust

// t-тест за една извадка в Rust
fn one_sample_t_test(sample: &Vec<f64>, mu0: f64) -> f64 {
    let n = sample.len() as f64;
    let mean: f64 = sample.iter().sum::<f64>() / n;
    let sd = (sample.iter().map(|x| (x - mean).powi(2)).sum::<f64>() / (n - 1.0)).sqrt();
    let t = (mean - mu0) / (sd / n.sqrt());
    t
}

fn main() {
    let sample_data = vec![51.0, 49.0, 52.0, 48.0, 50.0, 47.0, 53.0, 49.0, 51.0];
    let t_statistic = one_sample_t_test(&sample_data, 50.0);
    println!("t-статистика: {:.2}", t_statistic);
}

Числов пример

Проблем: Производителят твърди, че средният живот на батерията е 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-тест. Линк

Допълнителни ресурси

  • Проверки на предположенията:
    • Използвайте Shapiro-Wilk тест за нормалност.
    • Използвайте Levene's тест за равенство на вариансите.
  • Инструменти за софтуер:
    • SPSS, SAS, Stata и R за напреднал статистически анализ.
  • Допълнително четене:
    • "Въведение в статистическото обучение" от Гарт Джеймс, Даниела Уитън, Тревър Хастие и Робърт Тибширани.
    • "Статистически методи" от Джордж У. Снедекор и Уилям Г. Кохран.
Feedback