Thực hiện tất cả các loại t-test: t-test một mẫu, t-test hai mẫu và t-test ghép cặp. Máy tính này cho phép bạn thực hiện kiểm định giả thuyết thống kê cho các giá trị trung bình, hỗ trợ phân tích dữ liệu và diễn giải kết quả.
T-test là một công cụ thống kê cơ bản được sử dụng để xác định xem có sự khác biệt đáng kể nào giữa các trung bình của các nhóm hay không. Nó được áp dụng rộng rãi trong nhiều lĩnh vực như tâm lý học, y học và kinh doanh để kiểm tra giả thuyết. Máy tính này cho phép bạn thực hiện tất cả các loại t-test:
Chọn loại T-Test:
Nhập các đầu vào cần thiết:
Đối với T-Test Một Mẫu:
Đối với T-Test Hai Mẫu:
Đối với T-Test Ghép:
Đặt mức ý nghĩa ():
Chọn hướng kiểm tra:
Nhấn nút "Tính toán":
Máy tính sẽ hiển thị:
Trước khi sử dụng t-test, hãy đảm bảo rằng các giả định sau được đáp ứng:
T-statistic được tính như sau:
Độ lệch chuẩn gộp ():
Máy tính thực hiện các bước sau:
Mặc dù t-tests rất mạnh, nhưng chúng có những giả định mà không phải lúc nào cũng được đáp ứng. Các lựa chọn thay thế bao gồm:
T-test được phát triển bởi William Sealy Gosset vào năm 1908, người đã xuất bản dưới bút danh "Student" trong khi làm việc tại nhà máy bia Guinness ở Dublin. Bài kiểm tra được thiết kế để theo dõi chất lượng của stout bằng cách xác định xem các lô mẫu có nhất quán với các tiêu chuẩn của nhà máy bia hay không. Do các thỏa thuận bảo mật, Gosset đã sử dụng bút danh "Student", dẫn đến thuật ngữ "T-test của Student."
Theo thời gian, t-test đã trở thành một yếu tố cơ bản trong phân tích thống kê, được giảng dạy và áp dụng rộng rãi trong nhiều lĩnh vực khoa học. Nó đã mở đường cho sự phát triển của các phương pháp thống kê phức tạp hơn và là nền tảng trong lĩnh vực thống kê suy diễn.
Dưới đây là các ví dụ mã cho việc thực hiện T-Test Một Mẫu trong nhiều ngôn ngữ lập trình khác nhau:
1' T-Test Một Mẫu trong Excel VBA
2Sub OneSampleTTest()
3 Dim sampleData As Range
4 Set sampleData = Range("A1:A9") ' Thay thế bằng phạm vi dữ liệu của bạn
5 Dim hypothesizedMean As Double
6 hypothesizedMean = 50 ' Thay thế bằng trung bình giả thuyết của bạn
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-Statistic: " & Format(tStat, "0.00")
20End Sub
21
1## T-Test Một Mẫu trong 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
1import numpy as np
2from scipy import stats
3
4## T-Test Một Mẫu trong 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-Statistic: {t_statistic:.2f}, P-Value: {p_value:.4f}")
8
1// T-Test Một Mẫu trong 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// Ví dụ sử dụng:
11const sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
12const tStatistic = oneSampleTTest(sampleData, 50);
13console.log(`T-Statistic: ${tStatistic.toFixed(2)}`);
14
1% T-Test Một Mẫu trong MATLAB
2sampleData = [51, 49, 52, 48, 50, 47, 53, 49, 51];
3[h, p, ci, stats] = ttest(sampleData, 50);
4disp(['T-Statistic: ', num2str(stats.tstat)]);
5disp(['P-Value: ', num2str(p)]);
6
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-Statistic: %.2f%n", tStatistic);
11 System.out.printf("P-Value: %.4f%n", pValue);
12 }
13}
14
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-Statistic: {tStatistic:F2}");
15 }
16}
17
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-Statistic: %.2f\n", tStatistic)
30}
31
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-Statistic: %.2f", tStatistic))
14
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-Statistic: " . number_format($tStatistic, 2);
15?>
16
1## T-Test Một Mẫu trong 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-Statistic: %.2f", t_statistic)
13
1// T-Test Một Mẫu trong 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-Statistic: {:.2}", t_statistic);
14}
15
Vấn đề: Một nhà sản xuất tuyên bố rằng tuổi thọ trung bình của một viên pin là 50 giờ. Một nhóm người tiêu dùng thử nghiệm 9 viên pin và ghi lại các tuổi thọ sau (tính bằng giờ):
Có bằng chứng nào ở mức ý nghĩa 0.05 để cho thấy rằng tuổi thọ pin trung bình khác với 50 giờ không?
Giải pháp:
Trạng thái giả thuyết:
Tính toán Trung bình mẫu ():
Tính toán Độ lệch chuẩn mẫu ():
Tính toán T-Statistic:
Bậc tự do:
Xác định P-Value:
Kết luận:
Khám phá thêm các công cụ có thể hữu ích cho quy trình làm việc của bạn