ماشین حساب t-Test برای تحلیل آماری و مقایسه میانگین‌ها

انواع مختلف t-test ها را انجام دهید: t-test یک نمونه، t-test دو نمونه و t-test جفتی. این ماشین حساب به شما امکان می‌دهد تا آزمون فرض آماری برای میانگین‌ها را انجام دهید و به تحلیل داده‌ها و تفسیر نتایج کمک کند.

ماشین حساب t-Test

sampleDataDescription
📚

مستندات

ماشین حساب T-Test

مقدمه

t-test یک ابزار آماری اساسی است که برای تعیین اینکه آیا تفاوت معناداری بین میانگین گروه‌ها وجود دارد یا خیر، استفاده می‌شود. این روش به طور گسترده‌ای در زمینه‌های مختلفی مانند روانشناسی، پزشکی و کسب و کار برای آزمون فرضیه‌ها به کار می‌رود. این ماشین حساب به شما این امکان را می‌دهد که تمام انواع t-test ها را انجام دهید:

  • t-test یک نمونه‌ای: بررسی می‌کند که آیا میانگین یک گروه از یک مقدار شناخته شده متفاوت است یا خیر.
  • t-test دو نمونه‌ای (نمونه‌های مستقل): میانگین‌های دو گروه مستقل را مقایسه می‌کند.
  • t-test جفتی: میانگین‌ها را از یک گروه در زمان‌های مختلف مقایسه می‌کند (به عنوان مثال، قبل و بعد از درمان).

انواع t-test ها

داده‌های نمونه میانگین جمعیت t-test یک نمونه‌ای نمونه ۱ نمونه ۲ تفاوت میانگین t-test دو نمونه‌ای قبل بعد تفاوت‌ها t-test جفتی

نحوه استفاده از این ماشین حساب

  1. نوع t-test را انتخاب کنید:

    • t-test یک نمونه‌ای
    • t-test دو نمونه‌ای
    • t-test جفتی
  2. ورودی‌های مورد نیاز را وارد کنید:

    • برای t-test یک نمونه‌ای:

      • میانگین نمونه (xˉ\bar{x})
      • انحراف معیار نمونه (ss)
      • اندازه نمونه (nn)
      • میانگین جمعیت (μ0\mu_0)
    • برای t-test دو نمونه‌ای:

      • میانگین نمونه ۱ (xˉ1\bar{x}_1)
      • انحراف معیار نمونه ۱ (s1s_1)
      • اندازه نمونه ۱ (n1n_1)
      • میانگین نمونه ۲ (xˉ2\bar{x}_2)
      • انحراف معیار نمونه ۲ (s2s_2)
      • اندازه نمونه ۲ (n2n_2)
      • فرضیت واریانس: انتخاب کنید که آیا واریانس‌ها برابر یا نابرابر فرض می‌شوند.
    • برای t-test جفتی:

      • داده‌های تفاوت: تفاوت‌های جفتی را وارد کنید.
      • به طور جایگزین، میانگین تفاوت‌ها (dˉ\bar{d})، انحراف معیار تفاوت‌ها (sds_d) و اندازه نمونه (nn) را وارد کنید.
  3. سطح معناداری (α\alpha) را تنظیم کنید:

    • انتخاب‌های رایج 0.05 برای سطح اطمینان ۹۵٪ یا 0.01 برای سطح اطمینان ۹۹٪ هستند.
  4. جهت آزمون را انتخاب کنید:

    • آزمون دو طرفه: برای هر تفاوتی آزمون می‌کند.
    • آزمون یک طرفه: برای یک تفاوت جهت‌دار آزمون می‌کند (مشخص کنید که آیا برای بیشتر یا کمتر آزمون می‌کنید).
  5. روی دکمه "محاسبه" کلیک کنید:

    • ماشین حساب نمایش خواهد داد:

      • t-آماره
      • درجه آزادی
      • p-مقدار
      • نتیجه‌گیری: آیا فرض صفر را رد کنید یا رد نکنید.

فرضیات

قبل از استفاده از t-test، اطمینان حاصل کنید که فرضیات زیر برآورده شده‌اند:

  • نرمالیته: داده‌ها باید به طور تقریبی توزیع نرمال داشته باشند.
  • استقلال: مشاهدات باید مستقل از یکدیگر باشند.
    • برای t-test دو نمونه‌ای، دو گروه باید مستقل باشند.
    • برای t-test جفتی، تفاوت‌ها باید مستقل باشند.
  • برابری واریانس‌ها:
    • برای t-test دو نمونه‌ای با واریانس‌های برابر، واریانس‌های دو جمعیت باید برابر باشند (هموسکداستیسیته).
    • اگر این فرض برآورده نشود، از t-test ولچ (واریانس‌های نابرابر) استفاده کنید.

فرمول

t-test یک نمونه‌ای

t-آماره به صورت زیر محاسبه می‌شود:

t=xˉμ0snt = \frac{\bar{x} - \mu_0}{\frac{s}{\sqrt{n}}}
  • xˉ\bar{x}: میانگین نمونه
  • μ0\mu_0: میانگین جمعیت تحت فرض صفر
  • ss: انحراف معیار نمونه
  • nn: اندازه نمونه

t-test دو نمونه‌ای (نمونه‌های مستقل)

فرض واریانس‌های برابر
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-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-test جفتی

t=dˉsdnt = \frac{\bar{d}}{\frac{s_d}{\sqrt{n}}}
  • dˉ\bar{d}: میانگین تفاوت‌ها
  • sds_d: انحراف معیار تفاوت‌ها
  • nn: تعداد جفت‌ها

درجه آزادی

t-test یک نمونه‌ای و t-test جفتی:
df=n1df = n - 1
t-test دو نمونه‌ای با واریانس‌های برابر:
df=n1+n22df = n_1 + n_2 - 2
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-test یک نمونه‌ای

  • آزمون اثربخشی داروی جدید:
    • تعیین کنید که آیا میانگین زمان بهبودی با داروی جدید از زمان بهبودی شناخته شده متفاوت است یا خیر.
  • کنترل کیفیت:
    • بررسی کنید که آیا میانگین طول قطعات تولید شده از استاندارد مشخص شده منحرف شده است یا خیر.

t-test دو نمونه‌ای

  • آزمون A/B در بازاریابی:
    • مقایسه نرخ تبدیل بین دو طراحی وب‌سایت مختلف.
  • تحقیقات آموزشی:
    • ارزیابی اینکه آیا تفاوتی در نمرات آزمون بین دو روش تدریس وجود دارد یا خیر.

t-test جفتی

  • مطالعات قبل و بعد:
    • ارزیابی کاهش وزن قبل و بعد از یک برنامه رژیم غذایی.
  • موضوعات جفتی:
    • مقایسه اندازه‌گیری‌های فشار خون قبل و بعد از تجویز دارو به همان موضوعات.

جایگزین‌ها

در حالی که t-test ها قدرتمند هستند، اما فرضیات دارند که ممکن است همیشه برآورده نشوند. جایگزین‌ها شامل:

  • آزمون Mann-Whitney U:
    • جایگزین ناپارامتری برای t-test دو نمونه‌ای زمانی که داده‌ها توزیع نرمال ندارند.
  • آزمون Wilcoxon Signed-Rank:
    • معادل ناپارامتری t-test جفتی.
  • ANOVA (تحلیل واریانس):
    • زمانی که می‌خواهید میانگین‌ها را در بیش از دو گروه مقایسه کنید.

تاریخچه

t-test توسط ویلیام سیلی گاسِت در سال ۱۹۰۸ توسعه یافت، که تحت نام مستعار "دانش‌آموز" منتشر شد در حالی که در کارخانه آبجو گینس در دوبلین کار می‌کرد. این آزمون برای نظارت بر کیفیت استوت طراحی شده بود تا تعیین کند که آیا نمونه‌های مختلف با استانداردهای کارخانه مطابقت دارند یا خیر. به دلیل توافق‌های محرمانه، گاسِت از نام مستعار "دانش‌آموز" استفاده کرد که منجر به اصطلاح "t-test دانش‌آموز" شد.

با گذشت زمان، t-test به یک ستون فقرات در تحلیل‌های آماری تبدیل شده است که به طور گسترده‌ای آموزش داده می‌شود و در رشته‌های علمی مختلف به کار می‌رود. این آزمون راه را برای توسعه روش‌های آماری پیچیده‌تر هموار کرد و در زمینه آمار استنباطی بنیادی است.

مثال‌ها

در اینجا مثال‌های کد برای انجام t-test یک نمونه‌ای در زبان‌های مختلف برنامه‌نویسی آورده شده است:

Excel

1' t-test یک نمونه‌ای در 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-test یک نمونه‌ای در 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-test یک نمونه‌ای در 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-test یک نمونه‌ای در 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-test یک نمونه‌ای در 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-test یک نمونه‌ای در 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-test یک نمونه‌ای در 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

مثال عددی

مسئله: یک تولیدکننده ادعا می‌کند که میانگین عمر یک باتری ۵۰ ساعت است. یک گروه مصرف‌کننده ۹ باتری را آزمایش می‌کند و عمرهای زیر را ثبت می‌کند (به ساعت):

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

آیا در سطح معناداری ۰.۰۵ شواهدی وجود دارد که نشان دهد میانگین عمر باتری از ۵۰ ساعت متفاوت است؟

راه‌حل:

  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-مقدار ۱.۰۰ است.
  7. نتیجه‌گیری:

    • از آنجا که p-مقدار (۱.۰۰) > \alpha (۰.۰۵)، ما فرض صفر را رد نمی‌کنیم.
    • تفسیر: شواهد کافی برای نشان دادن اینکه میانگین عمر باتری از ۵۰ ساعت متفاوت است وجود ندارد.

منابع

  1. گاسِت، و. س. (۱۹۰۸). "خطای احتمالی یک میانگین". بیومتریکا، ۶(۱)، ۱–۲۵. JSTOR.
  2. آزمون t دانش‌آموز. ویکی‌پدیا. https://en.wikipedia.org/wiki/Student%27s_t-test
  3. راهنمای آمار GraphPad: درک آزمون‌های t. لینک
  4. آمار لرد: t-test مستقل. لینک

منابع اضافی

  • بررسی فرضیات:
    • از آزمون شاپیرو-ویلک برای نرمالیته استفاده کنید.
    • از آزمون لوان برای برابری واریانس‌ها استفاده کنید.
  • ابزارهای نرم‌افزاری:
    • SPSS، SAS، Stata و R برای تحلیل‌های آماری پیشرفته.
  • مطالعه بیشتر:
    • "مقدمه‌ای بر یادگیری آماری" توسط گرت جیمز، دانیلا ویتن، تراور هستی و رابرت تیبشیرانی.
    • "روش‌های آماری" توسط جورج و. اسنیدکر و ویلیام گ. کاچران.