Загрузка данных


import scipy.stats as stats

X = [
    1.84, 0.38, 0.58, -1.49, 0.1, -1.53, -0.45, 1.25, -1.18, -2.75, -0.65, 2.05, -1.6, -1.32, -0.33,
    0.73, 0.69, -1.38, 1.2, 0.3, -2.86, 1.42, -0.01, 0.2, -0.57, -0.6, -2.4,
    2.95, 3.13, 1.06, 0.82, -0.95, 3.22, -0.61, 0.35, 2.07, -0.78, 0.05, -1.19, 0.29, 0.75, 0.76,
    1.31, -0.58, 0.1, 0.52, 0.33, 1.1, 4.28, 1.06, -0.41, 0.82, 0.41, -1.91,
    0.63, -0.53, -2.08, -0.02, -2.42, -0.45, -0.46, 2.59, -1.3, -0.42, -1.53, 0.81, 0.24, 1.39,
    -1.78, 0.79, 1.63, 2.06, 1.57, 0.59, -1.61, -1.13, -0.03, -1.25, 3.36, -0.3,
    2.68, -1.2, -0.69, -2.31, 2.29, -1.84, 0.25, 0.36, 0.12, -1.79, 1.68, -1.51, -1.56, 0.39,
    2.15, 0.72, -0.59, -1.54, 0.77, -0.27, 0.1, 0.46, 0, -2.05, 3.51, 0.47, -0.82,
    1.84, -0.47, -1.78, 1.61, -0.01, -0.15, 1.88, 1.07, 1.38, -1.75, -1, -1.28, 1.17, 0.55,
    1.52, -2.3, 1.08, -0.23, 1.41, -1.85, 1.45, 1.66, 0.12, 1.53, 2.13, -1.26, -1,
    2.62, -0.09, 2.83, 1.75, 0.41, 1.9, -0.65, 3.02, -1.08, 1.52, -0.19, 0.86, 0.4, -1.32,
    -0.41, -1.97, -1.6, -0.47, 2.38, 2.47, 2.04, 0.27, 1.69, -1.66, 0.69, 1.13, -0.71,
    0.47, 0.82
]

Y = [
    0.26, -2.35, -1.7, 1.84, 0.74, -2.17, -0.17, -0.93, -0.09, -1.65, 0.6, 1.59, -0.57, 0.64, 0.86,
    -0.18, -0.3, 1.53, 1.83, -0.78, -3.71, -1.08, 0.5, 1.62, -0.58, 0.98,
    -0.54, 0.64, 1.11, 0.85, 1.09, -1.19, 1.7, -0.47, -2.09, 2.22, -0.72, -1.19, -0.94, 0.83,
    -1.19, 0.15, -2.17, -1.8, -1.6, 0.76, 1.11, 0.11, 0.72, -1.35, -3.35, 1.02,
    -2.03, -0.72, -0.47, 0.5, 0.68, -2.27, -3.76, 1.05, -1.54, 1.37, 0.42, -0.01, 1.36, 4.1,
    0.97, -0.67, -0.48, -0.15, -0.31, 1.61, -1.97, 1.12, -0.25, 1.07, 2.77, -0.37,
    -0.7, 0.66, 0.68, -1.38, 0.26, 1.34, -0.67, 0.93, 0.87, -0.49, 0.63, 0.72, 2.6, 1.38,
    -0.59, 1.97, -1.22, 0.55, -1.29, -1.83, 0.16, -0.73, -0.45, -0.21, 0.62, 0.3, -1.61,
    1.5, -2.36, 0.27, -2.74, 0.88, 0.28, 0.37, -0.71, -1.8, -1.94, -1.09, -0.28, 2.91, -1.5,
    -0.64, 1, 0.23, -0.61, 0.75, -2.25, -0.3, 0.18, 0.67, 1.24, -1.98, -1.26, -2.47,
    -0.23, 1.86, 0.89, 3.63, -0.86, 2.43, -1.93, -1.9, 2.08, -1.26, -1.29, -2.26, -1.48, 1.59
]

alpha = 0.07

t_stat, p_value = stats.ttest_ind(X, Y, equal_var=False)

print(f"{p_value:.8f}")

if p_value < alpha:
    print(1)
else:
    print(0)

from collections import Counter
from scipy.stats import chi2

data = [
    'K', 'FX', 'W', 'W', 'W', 'M', 'W', 'S',
    'W', 'FX', 'W', 'M', 'W', 'W', 'S', 'FX', 'N', 'K', 'NA', 'N',
    'W', 'N', 'W', 'W', 'W', 'S', 'W', 'M', 'W', 'W', 'M', 'M',
    'NA', 'NA', 'K', 'N', 'M', 'W', 'K', 'S', 'M', 'NA', 'K', 'M',
    'S', 'NA', 'N', 'S', 'FX', 'M', 'K', 'NA', 'M', 'M', 'FX',
    'FX', 'FX', 'FX', 'M', 'W', 'W', 'FX', 'W',
    'S', 'W', 'W', 'FX', 'S', 'FX', 'W', 'W', 'W', 'W', 'FX',
    'FX', 'W', 'M', 'N', 'K', 'S', 'N', 'S', 'FX', 'FX', 'N',
    'NA', 'NA', 'M', 'NA', 'NA', 'NA', 'M', 'W', 'M', 'NA', 'M',
    'FX', 'FX', 'S', 'K', 'W', 'S', 'S', 'K', 'M', 'NA', 'NA',
    'S', 'M', 'M', 'FX', 'K', 'FX'
]

alpha = 0.03

clean_data = [x for x in data if x != 'NA']

counts = Counter(clean_data)
categories = ['K', 'FX', 'W', 'M', 'S', 'N']

observed = [counts[cat] for cat in categories]

n = sum(observed)
k = len(categories)
expected = n / k

chi_square_stat = sum((x - expected) ** 2 / expected for x in observed)

df = k - 1
critical_value = chi2.ppf(1 - alpha, df)

decision = 1 if chi_square_stat > critical_value else 0

print(df)
print(f"{chi_square_stat:.8f}")
print(f"{critical_value:.8f}")
print(decision)

from scipy.stats import f
import numpy as np

X = [
    0.04, -0.71, -0.22, -0.44, 1.03, 0.64, 0.56, 2.16, -0.11, -1.03, 1.06, -1.65, -1.85, 0.53, 0.44,
    -0.96, 0.74, 1.2, -0.04, 0.33, -1.14, 0.38, -0.64, 0.18, 1.18, -1.74,
    -1.52, -0.41, -0.6, -0.77, 0.37, 0.02, -1.18, -1.03, -0.59, -0.13, 1.56, 1.22, -0.73, -0.83,
    -0.22, -0.09, -0.47, -0.11, -0.26, 0.26, 0.21, 0.09, 0.16, 1.18, -0.02, -0.5,
    0.45, 0.33, 0.61, -0.31, -0.02, 1.26, -0.23, -0.07, -2.24, 0.91, 1.85, 0.31, 0.02, 0.97,
    1.05, -0.87, -0.53, 1.43, -0.04, -0.06, -0.38, 0.35, 1.44, -0.17, -0.07, 0.27,
    0.34, 0.17, -0.38, 0.07, 0.69, 0.42, -0.24, -0.65, 0.34, -0.6, -0.32, -1.04, 0.12, 0.26,
    -0.71, 0.17, 0.04, -0.17, -1.28, 0.81, 1.17, 1.4, -0.64, -0.48, 0.48, 0.57, 1.36,
    1.92, 0.51, 1.36, -0.93, 0.16, 0.86, 0.25, 0.39, -0.41, -2.05, -0.21, -0.59, 0.6, -0.14,
    -1.01, -1.33, 0.2, -1.61, -0.13, 0.68, 0.45, 0.13, 0.53, 0.18, -0.13, 0.22, -0.5,
    -0.39, 0.21, 0.15, 0.33, 1.1, 0, 0.58, -0.2, 0.74, 0.51, 0.39, 0.7, 0.85, -0.64, -0.87,
    0.25, 0.98, 0.77, -0.48, -0.13, -0.23, 0.42, 0.41, -1.06, -0.88, -0.14, -0.01,
    0.08, 0.5, -0.02, 0.39, -0.5, -0.34, 0.68
]

Y = [
    0.05, -0.02, 0.86, 0.7, 0.6, 0.94, 0.67, -0.19, -0.27, 0.43, -0.04, 0.56, 0.24, 0.89, 0.29,
    0.24, -0.1, 0.44, -0.19, 0.39, 1.1, -1.19, 0.81, 0.38, 0.79, 0.69, 1.55, 0.02,
    1.18, 0.1, 0.17, 0.46, 0.92, 0.74, 0.46, -0.65, 0.1, 0.78, 0.18, 0.64, 1.08, 0.61,
    -0.23, -0.53, 0.16, 0.74, -0.17, 0.78, 1.84, -0.53, 0.82, 0.51, -0.65, 0.58, -0.09,
    0.62, 0.23, 0.74, 0.51, 1.26, 0.49, -0.73, -0.4, 0.31, -0.17, 0.51, -0.76, 0.48, 0.91,
    0.49, 0.81, 1.14, 0.25, 1.21, -0.71, 0.66, 0.41, 1.25, 1.34, -0.11, 0.87, 1.52,
    0.48, 0.18, 0.76, 0.93, 0.39, 0.69, -0.31, 1.4, 1.75, 1.17, 0.46, 0.44, 0.13, 0.37,
    1.75, 0.32, 0.27, 0.04, 0.78, 0.51, -0.08, 0.01, 0.22, 0.2, 1.19, 0.04, 0.66, 0.33,
    0.6, -0.28, -0.12, 0.4, 0.58, 1.6, -0.11, 0.38, 0.43, 0.95, 0.2, 0.17, 0.7, 0.08,
    1.44, 0.89, 0.25, 0.49, 1.65, 1.3, 1.5, 0.22, -0.12, 0.91, 0.9, -0.09, 1.17, -0.35, 1.28,
    -0.76, -0.19, 1.41, 0.76, -0.12, 1.79, 0.03, -0.33, 1.91, 0.1, 0.91, 0.05, -0.41, 0.22,
    1.28, 0.67, 1.65, 1.21, 1.03, 0.64, 1.14, 1.07, 0.05, 0.37, 0.09, 1.4, 0.04, -1.52,
    0.8, 1.21, 0.58, 0.76
]

alpha = 0.09

var_x = np.var(X, ddof=1)
var_y = np.var(Y, ddof=1)

f_stat = var_x / var_y
p_value = 1 - f.cdf(f_stat, len(X) - 1, len(Y) - 1)

print(f"{p_value:.8f}")
print(1 if p_value < alpha else 0)

from scipy.stats import t
from math import sqrt

n = 107
x_mean = -26.5
mu0 = -27
s = 3.4
alpha = 0.08

t_stat = (x_mean - mu0) / (s / sqrt(n))
p_value = t.sf(t_stat, df=n - 1)

decision = 1 if p_value < alpha else 0

print(f"{t_stat:.8f}")
print(f"{p_value:.8f}")
print(decision)

import numpy as np
from scipy.stats import t

data = [
    (181.63,177.72), (167.6,164.2788), (212.94,174.9624), (235.74,163.9156), (129.72,169.5652),
    (185.67,None), (None,None), (155.91,168.4404), (171.26,157.8648), (138.23,157.2464),
    (146.72,139.2128), (166.56,146.3936), (None,None), (203.94,149.8808), (180.2,192.4268),
    (135.46,172.4716), (146.9,161.6568), (170.53,171.4684), (169.68,165.5952), (204.71,166.6588),
    (189.12,167.8128), (154.6,135.8688), (196.42,172.7668), (203.82,162.742), (221.25,164.0996),
    (None,None), (170.03,151.17), (197.32,195.296), (234.75,163.5696), (166.09,168.0956),
    (141.55,144.5216), (208.35,177.5024), (None,None), (160.27,167.3724), (208.89,157.6828),
    (151.51,159.4772), (130.64,174.0088), (None,None), (213.69,171.7932), (171.9,142.2576),
    (204.91,140.2432), (None,None), (186.12,None), (224,None), (190.41,183.1604),
    (156.93,153.4064), (183.39,160.6752), (146.67,None), (220,165.9776), (172.92,162.3676),
    (193.6,156.0456), (186.38,166.6552), (157.63,None), (188.76,173.534), (169.45,154.7944),
    (168.47,169.1232), (134.39,188.4768), (173,185.0612), (181.44,161.338), (189.69,180.7108),
    (230.39,181.2712), (149,134.878), (196.59,170.7748), (195.37,165.516), (136.13,175.3128),
    (184.39,168.5108), (160.42,176.014), (168.71,165.9684), (147.94,176.1472), (168.69,153.6848),
    (None,None), (189.79,162.6224), (198.08,194.9428), (125.54,164.134), (None,None),
    (190.61,154.868), (171.97,156.2012), (170.67,197.1476), (175.06,170.6348), (175.88,177.904),
    (195.26,185.1584), (197.04,175.0612), (182.96,146.298), (164.01,142.6016), (199.84,None),
    (146.5,182.0672), (177.46,None), (220.31,157.5936), (233.74,170.5268), (155.08,174.5196),
    (184.55,156.4992), (157.52,143.7384), (209.68,158.6108), (146.85,183.9628),
    (133.58,162.0448), (185.7,160.8784), (208.7,181.7256), (185.4,158.9408), (162.92,165.6064),
    (157.42,143.6292), (191.7,143.998), (192.53,176.706), (170.15,174.4648), (163.87,181.6996),
    (110.64,161.976), (199.45,163.6528), (169.31,153.5872), (199.58,178.9812), (158.87,167.426),
    (None,None), (151.04,168.5108), (205.81,161.098), (185.73,151.6624), (177.75,158.6232),
    (168.36,153.9436), (161.63,174.7952), (134.38,166.994), (241.59,161.2924),
    (169.11,165.6232), (178.41,148.8228), (171.29,168.7692), (125.57,139.3332),
    (172.9,183.3604), (166.78,167.5344), (188.59,139.0572), (211.19,179.68),
    (214.65,186.6912), (None,None), (None,None), (218.96,167.6148), (206.04,171.678),
    (None,None), (158.51,176.8824), (208.36,173.7404), (188.42,178.1068),
    (184.42,160.638), (215.26,194.376), (None,None), (147.05,164.5852), (203.12,163.5968),
    (161.25,149.8512), (179.66,161.1772), (179.59,162.0272), (141.25,177.2956),
    (163.9,173.3024), (184.19,157.464), (171.66,None), (224.64,192.3204),
    (None,None), (182.8,144.0956), (134.78,128.524), (181.24,175.7108),
    (212.21,165.2992), (125.08,161.4016), (195.89,157.6272), (161.45,171.6252),
    (126.91,153.728), (197.81,170.3388), (163.5,154.7692), (163.47,148.6028),
    (213.53,182.4892), (162.2,None), (199.3,162.7392), (173.53,161.4412),
    (189.64,148.5436), (134.25,182.2372), (174.18,174.9896), (221.12,169.9588),
    (185.84,193.6968), (139.01,161.9548), (225.68,167.582), (204.94,172.1236),
    (191.53,177.8312), (197.63,150.4432), (157.27,161.594), (217.23,169.2152),
    (187.83,None), (202.8,184.0688), (178.4,173.7908), (189.35,170.4072),
    (138.33,168.1932), (186.32,165.1784), (206.77,153.18), (168.45,160.7036),
    (186.83,183.4536), (207.47,150.7612)
]

alpha = 0.06

clean_data = [(x, y) for x, y in data if x is not None and y is not None]

x = np.array([pair[0] for pair in clean_data])
y = np.array([pair[1] for pair in clean_data])

n = len(clean_data)
r = np.corrcoef(x, y)[0, 1]

t_obs = r * np.sqrt(n - 2) / np.sqrt(1 - r ** 2)
t_crit = t.ppf(1 - alpha / 2, df=n - 2)
p_value = 2 * t.sf(abs(t_obs), df=n - 2)

decision = 1 if p_value < alpha else 0

print(n)
print(f"{r:.8f}")
print(f"{t_obs:.8f}")
print(f"{t_crit:.8f}")
print(f"{p_value:.8f}")
print(decision)

from scipy.stats import chi2

n = 120
s2 = 75.6
sigma2_0 = 131.2
alpha = 0.03

df = n - 1

chi2_stat = df * s2 / sigma2_0
p_value = chi2.cdf(chi2_stat, df)

decision = 1 if p_value < alpha else 0

print(f"{chi2_stat:.8f}")
print(f"{p_value:.8f}")
print(decision)