
def t3():
    """
import numpy as np

Банк выдал кредиты двум группам заемщиков: 180 заемщиков в первой группе и 70 – во второй.
Известно, что заемщики из первой группы возвращают кредит с вероятностью 0,93, а заемщики из второй группы – с вероятностью 0,92.
Пусть X – суммарное количество возвращенных кредитов для обеих групп.
Предполагая независимость заемщиков, найдите:
1) стандартное отклонение X; 2) асимметрию X.
Указание: используйте присущее третьему центральному моменту свойство аддитивности (основное свойство семиинвариантов).


# Зададим параметры биномиальных распределений для каждой партии семян
n1, p1 = 180, 0.93  # Параметры для первой партии
n2, p2 = 70, 0.92  # Параметры для второй партии

# Рассчитаем дисперсию для каждой партии
var_S1 = n1 * p1 * (1 - p1)
var_S2 = n2 * p2 * (1 - p2)

# Общая дисперсия суммы проросших семян
var_S = var_S1 + var_S2

# Стандартное отклонение суммы
std_S = np.sqrt(var_S)

# Асимметрия для каждой партии
skew_S1 = (1 - 2 * p1) / np.sqrt(var_S1)
skew_S2 = (1 - 2 * p2) / np.sqrt(var_S2)

# Комбинированная асимметрия
combined_skewness = (skew_S1 * var_S1**1.5 + skew_S2 * var_S2**1.5) / var_S**1.5

print(std_S, combined_skewness)


Независимые пуассоновские случайные величины X,Y,Z
 имеют следующие стандартные отклонения: σX=0,3
; σY=0,9
; σZ=1,8
. Пусть S=X+Y+Z
. Найдите: 1) вероятность P(S=7)
; 2) наиболее вероятное значение суммы S
; 3) стандартное отклонение σS
; 4) асимметрию As(S)
; 5) эксцесс Ex(S)
.



import math
from scipy.stats import poisson

# Заданные стандартные отклонения
sigma_X = 0.3
sigma_Y = 0.9
sigma_Z = 1.8

# Вычисление параметров распределений
lambda_X = sigma_X ** 2
lambda_Y = sigma_Y ** 2
lambda_Z = sigma_Z ** 2

# Параметр суммы
lambda_S = lambda_X + lambda_Y + lambda_Z

# 1. Вероятность P(S=7)
P_S_7 = poisson.pmf(7, lambda_S)
print(f"1. Вероятность P(S=7): {P_S_7}")

# 2. Наиболее вероятное значение суммы S (мода)
mode_S = math.floor(lambda_S) if poisson.pmf(math.floor(lambda_S), lambda_S) >= poisson.pmf(math.floor(lambda_S) - 1, lambda_S) else math.floor(lambda_S) - 1
print(f"2. Наиболее вероятное значение суммы S: {mode_S}")

# 3. Стандартное отклонение σS
sigma_S = math.sqrt(lambda_S)
print(f"3. Стандартное отклонение σS: {sigma_S}")

# 4. Асимметрия As(S)
asymmetry_S = 1 / math.sqrt(lambda_S)
print(f"4. Асимметрия As(S): {asymmetry_S}")

# 5. Эксцесс Ex(S)
excess_S = 1 / lambda_S
print(f"5. Эксцесс Ex(S): {excess_S}")



Монеты в количестве 11 штук подбрасываются до тех пор, пока 14 раз не выпадет 5 гербов.
Пусть X – число бросков до первого появления 5 гербов, а Y – число бросков до последнего появления 5 гербов (Y= общее число бросков).
Найдите:
1) математическое ожидание X;
2) стандартное отклонение X;
3) коэффициент корреляции между X и Y;
4) математическое ожидание XY




import math
n = 11
count_g = 14
gerb = 5

P = math.comb(n, gerb) / 2**n

E_X = 1/P
print(E_X)

var_x = (1-P)/P**2
std_x = var_x**0.5
print(std_x)

po = var_x / (std_x * std_x * count_g**0.5)
print(po)

E_XY = var_x + count_g*E_X**2
print(E_XY)



Корзина содержит 34 шаров, среди которых 14 – красных и 5 – синих.
Из корзины, случайным образом, без возвращения извлекаются 12 шаров.
Пусть X и Y обозначают количество красных и синих шаров среди извлеченных, соответственно.
Найдите ковариацию Cov(X,Y).




n = 12
M1 = 14
M2 = 5
N = 34

# Вычисление ковариации
cov_XY = - (n * M1 * M2 * (N - n)) / (N**2 * (N - 1))

# Вывод результата
print("Ковариация Cov(X, Y):", cov_XY)


Математическое ожидание доходности акций компаний А и В составляет 4
% и 5
%, при этом стандартное отклонение доходности равно 5
% и 8
%, соответственно. Также известен коэффициент корреляции ρAB
 доходностей акций А и В, ρAB=0,30
. Найдите (короткие позиции допускаются): 1) доли акций А и В в портфеле с минимальной дисперсией доходности; 2) ожидаемую доходность и стандартное отклонение доходности такого портфеля.



mean_A = 0.04 # доходность акции A в виде 0.xx
std_A = 0.05 # стандартное отклонение доходности A в виде 0.xx
mean_B = 0.05 # доходность акции B в виде 0.xx
std_B = 0.08 # стандартное отклонение доходности B в виде 0.xx
rho_AB = 0.30 # кф корреляции

cov_matrix = np.array([[std_A**2, rho_AB * std_A * std_B],
                       [rho_AB * std_A * std_B, std_B**2]])

inv_cov_matrix = np.linalg.inv(cov_matrix)

results = []

for weight_A in np.arange(-1, 2, 0.01):
    weight_B = 1 - weight_A
    weights = np.array([weight_A, weight_B])

    mean_portfolio = np.dot([mean_A, mean_B], weights)

    std_portfolio = np.sqrt(np.dot(weights.T, np.dot(cov_matrix, weights)))

    results.append((weights, mean_portfolio, std_portfolio))

min_std_index = np.argmin([result[2] for result in results])
min_std_weights, min_std_mean, min_std_std = results[min_std_index]

print("Доли акций A и B в портфеле с минимальной дисперсией доходности:")
print("Доля акций A:", min_std_weights[0])
print("Доля акций B:", min_std_weights[1])
print("Ожидаемая доходность портфеля:", min_std_mean)  # тут сайт в проценты будет просить перевести если маткальк
print("Стандартное отклонение доходности портфеля:", min_std_std) # тут сайт в проценты будет просить перевести если маткальк
    """
