Sobes.tech
Middle+

G ტესტი რა არის?

sobes.tech AI

პასუხი AI-სგან

G-ტესტი (ან G-ტესტი, χ²-ტესტი სარწმუნოების შეფარდებაზე) არის სტატისტიკური ტესტი, რომელიც გამოიყენება ჰიპოთეზების შემოწმებისთვის კატეგორიული მონაცემების სიხშირის განაწილებაზე. QA კონტექსტში ის შეიძლება გამოყენებულ იქნას დეფექტების განაწილების შედარებისთვის კატეგორიებით (მაგალითად, ტიპი, პრიორიტეტი) სხვადასხვა პროდუქტის კომპლექტებში, ტესტირების გარემოებში ან ორი სხვადასხვა ტესტირების მიდგომის შედეგების შედარებისთვის, რათა დადგინდეს, არსებობს თუ არა სტატისტიკურად მნიშვნელოვანი განსხვავება. იგი წარმოადგენს პირსონის χ²-ტესტის ალტერნატივას, განსაკუთრებით მცირე ნიმუშებზე მუშაობისას.

ძირითადი ნაბიჯები:

  1. ნულოვანი ($H_0$) და ალტერნატიული ($H_1$) ჰიპოთეზების ფორმულირება:
    • $H_0$: სტატისტიკურად მნიშვნელოვანი განსხვავება სიხშირის განაწილებაში არ არის:
    • $H_1$: არსებობს სტატისტიკურად მნიშვნელოვანი განსხვავება:
  2. დაკვირვებული სიხშირეების ცხრილის შექმნა.
  3. მოსალოდნელი სიხშირეების გამოთვლა თითოეულ უჯრაში, თუ $H_0$ არის ჭეშმარიტი.
  4. G-სტატისტიკის გამოთვლა შემდეგ ფორმულით: $G = 2 \sum_{i} O_i \ ln(O_i/E_i)$ სადაც $O_i$ არის დაკვირვებული სიხშირე, $E_i$ არის მოსალოდნელი სიხშირე.
  5. თავისუფლების ხარისხის ($df$) განსაზღვრა. ცხრილისთვის $R \times C$ ($R$ რიგი, $C$ სვეტი): $df = (R-1)(C-1)$.
  6. გამოთვლილი G-ის მნიშვნელობის შედარება კრიტიკულ მნიშვნელობას G-გავრცელების ცხრილში ან p-ფუნქციით. თუ G > კრიტიკული მნიშვნელობა ან p < მნიშვნელობის დონე ($\alpha$), $H_0$ უარყოფილია.

QA-ში გამოყენების მაგალითი:

ორ სხვადასხვა ტესტირების გარემოში დეფექტების ტიპების განაწილების შედარება:

დეფექტის ტიპი გარემო A (დაკვირვებული) გარემო B (დაკვირვებული)
ფუნქციონალური 50 30
UI/UX 20 15
შესრულება 10 5
სულ 80 50

შემდეგ გამოთვლიან მოსალოდნელ სიხშირეებს და G-ს მნიშვნელობას:

გამოთვლის ინსტრუმენტები:

  • Python: scipy.stats ბიბლიოთეკები.
  • R: ინტეგრირებული ფუნქციები.
  • სტატისტიკური პაკეტები: SPSS, R, SAS.
# Python-ში scipy-ის გამოყენების მაგალითი
import numpy as np
from scipy.stats import chi2_contingency # G-ტესტი რეალიზებულია chi2_contingency-ში scipy-ში პარამეტრით lambda='log-likelihood'

# დაკვირვებული სიხშირეების ცხრილი (მაგალითური მონაცემები)
observed = np.array([[50, 30],
                     [20, 15],
                     [10,  5]])

# G-ტესტის ჩატარება
# lambda='log-likelihood' აღნიშნავს G-ტესტის გამოყენებას
g_statistic, p_value, dof, expected = chi2_contingency(observed, lambda_='log-likelihood')

print(f"G-სტატისტიკა: {g_statistic:.4f}")
print(f"P-ფუნქცია: {p_value:.4f}")
print(f"თავისუფლების ხარისხები (dof): {dof}")
print("მოსალოდნელი სიხშირეები:")
print(expected)

# ჰიპოთეზის შემოწმება 0.05 მნიშვნელობის დონეზე
alpha = 0.05
if p_value < alpha:
    print("შედეგი: ნულოვანი ჰიპოთეზა უარყოფილია - არსებობს სტატისტიკურად მნიშვნელოვანი განსხვავება.")
else:
    print("შედეგი: ნულოვანი ჰიპოთეზა არ უარყოფილია - განსხვავება არ არის სტატისტიკურად მნიშვნელოვანი.")