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


import math
from statistics import variance
from scipy.stats import chi2

data = """
list, 0.54, -0.46, -0.31, 0.24, 0.28, 0.12, 0.01, -0.41, -0.56, 0.11, 0.81, 1.23, 1.72, 0.66, 1.39, 0.08, greater,
0.27, 1.22, -0.69, 0.23, 1.16, 0.19, -0.57, -0.01, -1.89, 0.24, -0.06, 0.41, 0.24, 1.27, -0.59, 0.73, -0.1, 0.25, 0.85, 0.52, 0.62, 0.56,
0.81, -0.18, 0.8, -0.05, -0.49, 0.04, 0.76, 0.03, -0.28, -0.14, 0.02, 0.65, 0.35, 1.69, -0.41, -0.79, 0.21, 0.38, 0.08, 0.23, -0.12, 0.44,
1.44, 0.43, -0.95, -0.68, 0.86, 1.5, -0.32, 1.18, -1.17, 0.6, 0.52, 0.49, -0.69, 0.33, 1.46, 0.25, 1.33, 0.4, 0.12, 0.74, 0.36, 0.09, 1.25,
0.26, -0.92, 0.45, -0.23, -0.4, -0.08, 0.84, -0.53, 0.64, 1.16, 0.49, -0.37, -1.5, 0.85, 0.04, -0.68, 1.2, 0.36, 0.01, -0.23, 0.25, 0.27,
1.05, 0.26, one, -1.46, -1.29, 0.04, -0.26, -0.67, 0.36, -0.22, -0.13, -0.76, -1.09, -1.35, -0.48, 0.74, 1.2, 0.26, 0.48, 0.27, 1.04, -1.13,
0.54, 1.05, 0.49, -1.04, 0.08, -1.55, 0.87, 0.11, -0.28, 0.15, -0.17, 0.89, 0.33, 1.19, 0.23, 1.07, -0.43, -1.1, NA, 0.06, 1.22, -0.84,
0.01, -0.08, -0.61, 0.22, 0.57, 0.85, 0.25, -0.04, -0.33, -0.93, -0.48, 0.67, 0, -0.48, 0.18, -0.39, 0.5, 1.63, -0.81, -0.9, 0.57, -0.62, 1.2,
-0.65, -0.69, 0.17, 0.62, 0.78, 1.1, 1.75, 0.8, 1.2, 0.27, NA, 0.99, -0.88, -0.5, 0.14, 0.27, 0, 2.53, -0.33, NA, -0.48, -1.57, -0.05, -0.3,
-0.51, 0.39, 1.93, -0.42, -0.61, 0.12, -1.45, -0.77, 0.17, -0.12, -1.09, 0.53, -0.33, -0.05, 0.26, 0.18, 1.4, 0.63, 0.75, -0.72, -1, -0.48,
2.15, -0.84, 0.27, 0.68, 0.57, -0.7, 0.02, -0.04, -0.97, 0.72, -1.57, -0.52, -0.08, 1.08, 0.37, 0.14, 0.22, -0.96, 0.32, 0.51, 0.23, 0.85,
-0.03, 0.07, -1.48, 0.83, 0.82, 0.27, 1.05, -0.44, -0.11, 1.26, -0.96, 1.22, 0.77, 0.39, 1.94, 1.56, -0.21, 1.75, 1.49, 0.14, -0.45, 0.12,
-0.95, 0.5, 0.35, 0.29, 0.68, -0.37, 1.89, 0.42, eps, 0.15, 0.62, -0.18, 0.2, -1.05, 1.08, -1.17, 0.39, 0.47, 0.06, 0.01, 0.77, 1.51, -1.28,
0.26, 0.91, -0.48, -0.32, 0.97, 0.95, 0.25, 1.1, 0.39, 0.68, 0.43, -0.43, 0.13, 0.13, -0.5, 0.67, 0.45, 0.2, -0.44, 0.04, 0, -1.06, -0.28, 0.94,
-0.65, -0.15, -0.22, -0.28, 1.01, 0.6, 1.78, 0.2, -0.51, -1.09, 0.2, 1.35, 1.11, -0.45, 0.28, 0.12, 0.16, -0.03, 1.5, -0.94, 0.51, -0.61,
0.47, -0.46, 0.55, -0.59, 0.05, -0.12, -0.71, 0.56, 0.5, 0.04, 0.59, 0.88, 0.44, 0.46, -0.85, 0.9, -0.16, 1.69, 1.58, 1, -0.41, 0.29, -2.11,
-0.67, -0.73, -0.39, -0.3, -1.69, 0.15, 1.32, 0.39, 0.15, -1.61, 0.67, -0.83, -0.41, 1.04, 0.38, -0.41, -0.72, 1.5, 0.77, -0.67, -0.27,
-0.65, -0.59, -0.64, 1.36, 0.08, 1.26, 0.88, 0.21, -0.88, -1.26, -0.19, -0.62, -1.07, 0.64, 1.35, -0.13, 1.15, 0.42, 0.7, -0.72, 0.4, -0.3,
-1.01, -0.05, 1.11, 0.45, -0.58, 0.36, 0.22, 1, 1.21, 0.83, -0.26, 0.74, -0.23, 0.19, 0.87, 1.07, 0.29, 0.47, 0.98, NA, 1.45, 0.39, -0.84,
0.61, -0.52, 0.73, -0.06, -0.97, -1.42, -0.97, -0.54, -0.17, -0.73, -0.19, -0.45, -0.03, -0.21, 0.81, 1.75, -0.72, 0.32, 0.99, -0.59, -0.28,
0.13, 0.59, 0.59, 0.69, -0.17, -0.22, 0.76, 1.01, 0
"""

items = [x.strip() for x in data.replace("\n", " ").split(",") if x.strip()]

n_raw = len(items)

clean = []
for x in items:
    try:
        clean.append(float(x))
    except ValueError:
        pass

n = len(clean)
s2 = variance(clean)  # несмещенная выборочная дисперсия

gamma = 0.92
alpha = 1 - gamma
df = n - 1

q1 = chi2.ppf((1 - gamma) / 2, df)   # 0.04
q2 = chi2.ppf((1 + gamma) / 2, df)   # 0.96

left = df * s2 / q2
right = df * s2 / q1

print(f"Объем исходной выборки: {n_raw}")
print(f"Объем очищенной выборки: {n}")
print(f"Дисперсия выборки (несмещенная): {s2:.8f}")
print(f"Квантиль уровня (1-gamma)/2: {q1:.8f}")
print(f"Квантиль уровня (1+gamma)/2: {q2:.8f}")
print(f"Левая граница ДИ для дисперсии: {left:.8f}")
print(f"Правая граница ДИ для дисперсии: {right:.8f}")