Correlation aur Hypothesis Testing: p-value, t-test, Chi-square

Lesson 17 of 26

Correlation

Correlation batata hai ki do numbers saath-saath kaise badalte hain. Value −1 se +1 ke beech hoti hai:

Value

Matlab

+1 ke paas

Strong positive — ek badhe to doosra bhi badhe

0 ke paas

Koi linear rishta nahi

−1 ke paas

Strong negative — ek badhe to doosra ghate

Example

Python
import numpy as np
import pandas as pd
from scipy import stats

rng = np.random.default_rng(10)
ad_spend = rng.uniform(10, 100, size=50)                     # hazaar Rs
sales = 200 + 5 * ad_spend + rng.normal(0, 60, size=50)
discount = rng.uniform(0, 30, size=50)                       # random, koi rishta nahi

df = pd.DataFrame({"ad_spend": ad_spend, "sales": sales, "discount": discount})
print(df.corr().round(2))

r, p = stats.pearsonr(df["ad_spend"], df["sales"])
print(f"\nad_spend vs sales: r = {r:.3f}, p-value = {p:.2e}")

Output

Plain Text
          ad_spend  sales  discount
ad_spend      1.00   0.93      0.01
sales         0.93   1.00      0.06
discount      0.01   0.06      1.00

ad_spend vs sales: r = 0.928, p-value = 3.78e-22

Correlation ≠ Causation. Garmi me ice-cream ki sale aur doobne ki ghatnayein dono badhti hain — par ice-cream doobne ki wajah nahi hai. Dono ke peeche teesri cheez hai: garmi. Kisi cheez ko 'wajah' kehne ke liye controlled experiment (jaise A/B test) chahiye.

Hypothesis testing kya hai?

Hum data se kisi daave ko check karte hain. Do hypotheses banti hain:

  • Null hypothesis (H₀) — koi farq nahi hai / koi effect nahi hai. (Default maan ke chalte hain.)
  • Alternative hypothesis (H₁) — farq hai / effect hai.

p-value = agar H₀ sach hota, to itna (ya isse zyada) farq sirf chance se dikhne ki probability. Agar p-value hamare significance level (α, aam taur pe 0.05) se kam hai, to hum H₀ ko reject karte hain.

A/B test: t-test

Ek website ne naya design banaya. 200 users ko purana (A) aur 200 ko naya (B) design dikhaya aur dekha ki log site pe kitne second rukte hain. Kya naya design sach me behtar hai?

Example

Python
design_a = rng.normal(120, 30, size=200)   # seconds
design_b = rng.normal(128, 30, size=200)

print("A ka average:", round(design_a.mean(), 1))
print("B ka average:", round(design_b.mean(), 1))

t_stat, p_value = stats.ttest_ind(design_b, design_a)
print(f"t = {t_stat:.3f}, p-value = {p_value:.6f}")

if p_value < 0.05:
    print("H0 reject: dono designs me significant farq hai.")
else:
    print("H0 reject nahi kar sakte: farq chance se ho sakta hai.")

Output

Plain Text
A ka average: 115.6
B ka average: 128.7
t = 4.284, p-value = 0.000023
H0 reject: dono designs me significant farq hai.

Yaha p-value 0.000023 aaya, jo 0.05 se kam hai — yaani ye farq sirf chance ka nateeja hone ki sambhavna bahut kam hai, aur naya design sach me logon ko zyada der rok raha hai.

Chi-square test: do categories ka rishta

Kya customer ki city aur unka chuna hua plan aapas me jude hain? Category vs category ke liye chi-square test:

Example

Python
observed = pd.DataFrame(
    {"Basic": [90, 60, 50], "Premium": [30, 60, 45]},
    index=["Delhi", "Mumbai", "Pune"],
)
print(observed)

chi2, p, dof, expected = stats.chi2_contingency(observed)
print(f"\nchi2 = {chi2:.2f}, dof = {dof}, p-value = {p:.4f}")

Output

Plain Text
        Basic  Premium
Delhi      90       30
Mumbai     60       60
Pune       50       45

chi2 = 18.34, dof = 2, p-value = 0.0001

p-value 0.0001 0.05 se kam hai, to hum keh sakte hain ki city aur plan ki choice aapas me jude hue hain — jaise Delhi me Basic plan zyada popular hai.

Kaunsa test kab?

Sawaal

Test

SciPy

Do groups ke average me farq?

Independent t-test

stats.ttest_ind

Same log, pehle vs baad me?

Paired t-test

stats.ttest_rel

3+ groups ke average?

ANOVA

stats.f_oneway

Do categories ka rishta?

Chi-square

stats.chi2_contingency

Do numbers ka rishta?

Pearson correlation

stats.pearsonr

Type I aur Type II error

H₀ sach me sahi hai

H₀ sach me galat hai

H₀ reject kiya

Type I error (false positive)

Sahi decision

H₀ reject nahi kiya

Sahi decision

Type II error (false negative)

α = 0.05 ka matlab hai ki hum 5% Type I error ka risk lene ko taiyaar hain.