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



import numpy as np
from scipy import stats

# Исходные данные (как в условии)
data_raw = [
    1.18, 0.36, 0.86, 0.23, 0.29, 0.43, 0.29, 0.21, -1.13, -0.54, -0.25, 0.72, 0.68, -0.7, -0.64, 1.16, 1.02, -0.83, 0.39, -0.06,
    -0.48, 0.43, 0.41, 1.28, -1.61, -0.84, -0.76, 1.69, -0.45, -0.52, 0.77, -0.78, 0.85, 0.43, 0.82, 0.88, 0.03, 0.33, 0.34, -0.76,
    0.67, -0.66, -0.52, -0.95, -0.8, 1.31, -1.24, 'equal', -0.96, 0.42, 0.52, 0.41, 0.6, -0.56, -0.5, 1.25, -0.83, 0.2, -0.44, 0.63,
    0.07, 0.11, 0.4, -0.38, 1.26, -0.05, -0.04, 0.05, 0.71, -0.31, 0.23, 0.35, -0.4, 0.17, 1.27, -1.72, 0.44, -1.22, -0.69, 'NA',
    -0.32, 0.11, 0.61, 0.77, -0.5, 0.03, -0.59, 0.92, -0.8, 0.01, 0.13, -0.93, 0.04, 0.06, 0.35, 0.55, 0.71, -0.12, 0.22, 0.83,
    0.87, -0.22, 'data', -0.86, -0.55, 'beta', 0.45, -1.35, 0.07, 0.68, 0.33, 0.09, 0.49, -1.31, 1.06, 1.12, 0.63, -0.53, 1.01, 0.27,
    -0.44, 0.57, 0.21, 0.76, 0.61, -1.14, 1.04, -0.35, 0.67, 'quiz', 0.49, -0.36, 0.77, 0.5, 1.42, 0.39, 0.51, -0.01, 0.93, 1.51,
    0.67, 0.55, 0.74, -0.12, 0.12, -0.79, 1.74, -0.24, 0.21, 1.38, -0.38, -0.09, -0.67, 0.13, 0.03, 0.09, -1.17, -0.77, -0.09, 'NA',
    -0.06, 0.73, 1.57, -0.25, -0.72, 0.98, 0.3, 0.24, 'list', 0.25, -0.49, 1.03, -0.57, 0.99, 0.76, 0.34, -0.93, 0.23, -0.35, 1.17,
    -0.91, 0.18, 0.92, 1.03, 0.39, 0.71, 1.43, 0.57, -0.31, 0.68, 0.45, 1.03, 0.89, -0.51, -0.5, 0.23, -0.35, 1.72, -0.34, 'seven',
    0.31, -0.64, -0.09, 0.65, 'eight', -0.52, 0.09, 0.9, 0.39, 1.31, -0.11, 0.64, 0.43, -0.05, 1.25, 0.89, -0.23, 0.55, 0.46, 0.12,
    -0.72, -0.21, -0.42, -0.67, 0.68, -0.92, 0.7, 0.52, -0.45, 0.06, 0.67, 'NA', 0.2, -0.13, 1.72, -0.21, -0.4, -0.85, -0.71, 0.87,
    -0.25, 0.5, 0.35, 0.43, -0.82, 0.5, 0.39, 0.46, 0.47, 0.22, 0.44, 1.11, 1.01, -1.63, 0.04, -0.6, -1.4, 1.31, -0.27, 0.7, -0.46,
    0.76, -0.07, 0.89, 0.57, -0.03, 0.09, 0.19, 0.14, 'nine', -0.52, -0.07, -0.53, 0.93, -1.0, -0.46, -0.01, 0.12, -1.72, 0.66, 0.14,
    -0.13, -0.84, 1.52, 0.63, -0.25, -0.53, 0.19, 0.51, 1.4, 0.24, 0.5, -0.16, -0.57, 1.09, -0.72, 0.14, 0.11, 0.38, -0.51, 0.7,
    -0.49, 'level', 0.19, 1.44, 0.01, -1.02, 0.34, -2.41, -0.3, -0.71, 0.53, -0.58, -0.5, 0.75, -0.49, 1.36, 0.14, -1.52, -0.02, 0.89,
    1.59, -0.61, 0.06, -0.83, 0.04, -0.69, 0.12, -0.43, -0.4, -0.43, 1.64, -0.15, 0.64, -0.75, 0.37, -1.78, -0.45, -1.36, 0.6, -0.98,
    -0.27, 0.94, 1.64, 0.15, 0.17, -0.2, 0.6, 0.24, 0.38, 0.83, -0.38, 0.01, -0.91, 0.18, 0.68, 0.59, 0.48, 0.14, 1.63, -0.9, 1.36,
    1.07, 0.6, 1.09, 0.28, -0.28, 1.04, 0.28, 0.09, 0.52, -0.31, 0.19, -0.6, 0.68, -0.33, 0.25, -0.14, 0.89, 0.05, 1.11, 0.11, -0.4,
    1.09, -0.39, -0.25, -0.07, 1.04, 0.51, 1.49, 0.03, -0.22, 0.44, -0.41, -2.05, -0.17, 0.95, 0.21, 0.19, 0.31, -0.04, -0.01, -0.11,
    -0.69, 1.25, -0.73, 0.84, 0.79, 1.37, 0.8, -0.06, -0.24, -0.62, 0.66, -0.78, 1.7, 0.51, 0.65, -0.89, -0.16, 0.14
]

# 1. Очистка данных: оставляем только числа (int/float), отбрасываем строки и NA
clean_data = []
for x in data_raw:
    if isinstance(x, (int, float)) and not isinstance(x, bool):  # bool - подкласс int в Python, исключаем
        clean_data.append(float(x))

n_initial = len(data_raw)
n_clean = len(clean_data)

# 2. Вычисление статистик
mean = np.mean(clean_data)
std_uncorrected = np.std(clean_data, ddof=1)  # несмещённое стандартное отклонение

# 3. Квантиль распределения Стьюдента для уровня доверия 0.93
confidence_level = 0.93
alpha = 1 - confidence_level
t_quantile = stats.t.ppf(1 - alpha/2, df=n_clean - 1)

# 4. Доверительный интервал для математического ожидания
margin = t_quantile * std_uncorrected / np.sqrt(n_clean)
ci_lower = mean - margin
ci_upper = mean + margin

# 5. Вывод результатов с округлением до 8 знаков
print(f"{n_initial:.8f}")
print(f"{n_clean:.8f}")
print(f"{mean:.8f}")
print(f"{std_uncorrected:.8f}")
print(f"{t_quantile:.8f}")
print(f"{ci_lower:.8f}")
print(f"{ci_upper:.8f}")