Microsegment.ru
  • Главная страница
  • О проекте
  • Портфолио
  • Блог
Анализ

Распределение дискретной и непрерывной случайной величины

Распределение дискретной и непрерывной случайной величины
Анализ

Параметры дискретной случайной величины

Решение на Python:

import numpy as np
from fractions import Fraction # Дроби

# Математическое ожидание, дисперсия
# среднеpквадратичное (стандартное) отклонение
# дискретной случайной величины

# ФУНКЦИЯ
def mean_square_deviation(X, P):
    # умножение очков на вероятность
    XP = []
    # математическое ожидание
    M = 0
    # дисперсия
    D = 0
    D2 = []
    # средне квадратичное отклонение
    STD = 0
    
    XP = X*P
    M = sum(XP)
    """i = 0
    while i < len(X):
        xp = X[i]*P[i]
        M += xp
        XP.append(Fraction(xp).limit_denominator(100))
        i += 1"""
    
    D2 = (X - M)**2*P
    """i = 0
    while i < len(X):
        D2.append((X[i] - M)**2*P[i])
        i += 1"""
    D = sum(D2)
    STD = D**.5
    xmin = M - STD
    xmax = M + STD
    STD2 = 2*STD
    STD3 = 3*STD
    min2STD = M - STD2
    max2STD = M + STD2
    min3STD = M - STD3
    max3STD = M + STD3
    
    print("Параметры дискретной случайной величины:")
    print()
    print("Знач.  Вероят.  X*P     Дисп.   СКО")
    print("-----------------------------------")
    i = 0
    while i < len(X):
        string = str(X[i]) + '\t'
        string += str(Fraction(P[i]).limit_denominator(100)) + '\t'
        string += str(Fraction(XP[i]).limit_denominator(100)) + '\t'
        string += str(Fraction(D2[i]).limit_denominator(100)) + '\t'
        if X[i] > xmin and X[i] < xmax: string += '|'
        if X[i] > min2STD and X[i] < max2STD: string += '|'
        if X[i] > min3STD and X[i] < max3STD: string += '|'
        print(string)
        i += 1

    print()
    print("Математическое ожидание M            =", round(M, 3), "=", Fraction(M).limit_denominator(10))
    #print("(при игре в 2 кости в среднем будет выпадать значение {:})".format(M))
    print()
    print("Дисперсия случайной величины D       =", 
          round(D, 2), "=", 
          Fraction(D).limit_denominator(10))
    print()
    print("Среднеквадратичное отклонение (СКО или sigma) =", 
          round(STD, 2), "=", 
          Fraction(STD).limit_denominator(10))
    print("(в среднем, значения будут от {:} до {:})".format(round(xmin, 2), round(xmax, 2)))
    print()
    print("Отклонение 2 сигмы = {:} = {:} (значения от {:} до {:})".format(round(STD2, 2),
                                                                         Fraction(STD2).limit_denominator(10),
                                                                         round(min2STD, 2), 
                                                                         round(max2STD, 2)))
    print("Отклонение 3 сигмы = {:} = {:} (значения от {:} до {:})".format(round(STD3, 2), 
                                                                         Fraction(STD3).limit_denominator(10),
                                                                         round(min3STD, 2), 
                                                                         round(max3STD, 2)))
    return STD

# ВВОД ДАННЫХ
# значения
#X  = [0, 1, 2, 3]
X  = np.array([0, 1, 2, 3])
# вероятность (сумма всех
# вероятностей должна быть = 1)
#P  = [.1, .3, .5, .1]
P  = np.array([.1, .3, .5, .1])

# Количество поставляемых товаров в день
X = np.array([5, 17, 25, 30])
# Вероятность поставки товаров в день
P = np.array([.1, .6, .05, .25])
# Количество дней поставок
days = 35

# РЕШЕНИЕ
std = mean_square_deviation(X, P)
Параметры дискретной случайной величины:

Знач.  Вероят.  X*P     Дисп.   СКО
-----------------------------------
5	1/10	1/2	1921/92	||
17	3/5	51/5	353/98	|||
25	1/20	5/4	134/87	|||
30	1/4	15/2	2393/86	||

Математическое ожидание M            = 19.45 = 175/9

Дисперсия случайной величины D       = 53.85 = 377/7

Среднеквадратичное отклонение (СКО или sigma) = 7.34 = 22/3
(в среднем, значения будут от 12.11 до 26.79)

Отклонение 2 сигмы = 14.68 = 44/3 (значения от 4.77 до 34.13)
Отклонение 3 сигмы = 22.01 = 22 (значения от -2.56 до 41.46)

Функция распределения дискретной случайной величины

Решение на Python:

# Функция распределения 
# дискретной случайной величины

# ФУНКЦИЯ
def discrete_random_variable_function(Z, P, x):
    # Z - значения.
    # P - вероятность (сумма всех
    # вероятностей должна быть = 1).
    # Z, P - должны быть:
    # 1. одноуровневой одинаковой размерности;
    # 2. отсортированы по Z от меньшего к большему.
    p = 0
    if x <= Z[0]: p = 0
    elif x > Z[len(Z)-1]: p = 1
    else:
        i = 1
        while i < len(Z):
            if Z[i-1] < x <= Z[i]:
                p = P[i]
            i += 1
    return p

# ВВОД ДАННЫХ
# значения
Z  = [0, 1, 2, 3]
# вероятность (сумма всех
# вероятностей должна быть = 1)
P  = [.1, .3, .5, .1]
# искомая величина
x = 1.0001

# РЕШЕНИЕ
p = discrete_random_variable_function(Z, P, x)
print(p)
0.5

Функция распределения непрерывной случайной величины

Функция распределения непрерывной случайной величины:

F(\infty) = \lim_{x \to \infty} F(x) = P(\xi < +\infty) = 1
F(-\infty) = \lim_{x \to -\infty} F(x) = P(\xi < -\infty) = 0

Сравнение случайных величин

Если вероятность a меньше b:

a < b
\\
P(\xi < a) \leqslant P(\xi < b)
\\
F(a) \leqslant F(b)

Если вероятность находится в пределе между a и b:

P(a \leqslant \xi < b) = P(\xi < b) - P(\xi < a) = F(b) - F(a)

Формула Ньютона-Лейбница (значение первообразной в точке b минус значение первообразной в точке a):

\int\limits_a^b f(x) dx= F(b) - F(a)

Первообразная для расчета распределения непрерывной случайной величины

Первообразная F(x):

F(x) = \int f(x) dx
\\
F'(x) = f(x)

Первообразная x (C— константа):

\int x dx = \frac{x^2}{2} + C

м виде (ln(x) — натуральный логарифм):

\int k x^n dx = k \frac{x^{n+1}}{n + 1} + C, n \ne -1
\\
\int \frac{k}{x} dx = k \ln(x) + C

Число e — основание натурального логарифма:

\lim_{n \to \infty} \left(1 + \frac{1}{n} \right)^n = e

Плотность распределения вероятности:

\lim_{x \to \pm\infty} f(x) = 0
\\
F(x) = \int\limits_{-\infty}^x f(x) dx
\\
F'(x) = \lim_{\Delta x \to 0} \frac{\Delta F}{\Delta x} = \lim_{\Delta x \to 0} \frac{f(x) \Delta x}{\Delta x} = f(x)

Параметры непрерывного распределения вероятности

Для расчета параметров непрерывного распределения вероятности, нужно ее плотность с помощью Δx→0 превратить, по сути, в дискретное распределение, где интервалы Δx стремятся к нулю.

Математическое ожидание непрерывного распределения:

M[x] = \bar x = \lim_{\Delta x \to 0} \sum(x \cdot f(x) \Delta x) = \int\limits_{-\infty}^{\infty} x f(x) dx

Средний квадрат непрерывного распределения:

\overline {x^2} = \int\limits_{-\infty}^{\infty} x^2 f(x) dx

Дисперсия непрерывного распределения:

D[x] = \int\limits_{-\infty}^{\infty} (x - M[x])^2 f(x) dx = \overline{x^2} - (\bar x)^2

Решение на Python:

import sympy as sm

x, k, c, D = sm.symbols("x k c D")
#k = .4
#c = 2
fx = k*x**2
fx = k*x + c

# Математическое ожидание непрерывного распределения
M = sm.integrate(x*fx, (x)) # неопределенный интеграл (обратный к дифференцированию)
#M = sm.integrate(x*fx, (x, 1, 2))
print("M  =", M)

# Средний квадрат непрерывного распределения
x2 = sm.integrate(x**2*fx, (x))
print("x2 =", x2)

# Дисперсия непрерывного распределения
Dx = x2 - M**2
print("D  =", Dx)
sm.Eq(D, Dx)
M  = c*x**2/2 + k*x**3/3
x2 = c*x**3/3 + k*x**4/4
D  = c*x**3/3 + k*x**4/4 - (c*x**2/2 + k*x**3/3)**2
D = \frac{cx^3}{3} +  \frac{cx^4}{4} - \left( \frac{cx^2}{2} +  \frac{cx^3}{3} \right)^3

Распределение непрерывной случайной величины

Распределение от 0 до τ:

\left. \int\limits_{-\infty}^{\infty} f(x) dx = \int\limits_0^{\tau} k dt = kt \right|_0^{\tau} = k\tau - k \cdot 0  = k\tau = 1
f(x)\left\{{0; t<0 \\ k; 0<t<\tau, k = \frac{1}{\tau} \\ 0; t>\tau} \right.

Решение на Python:

import sympy as sm

tau = sm.symbols("tau")
fx = 1/tau
fx
\frac{1}{\tau}

Функция распределения непрерывной случайной величины

Функция распределения:

F(t) = \int\limits_{-\infty}^t f(t) dt = \left\{{0; t \leqslant 0 \\ \frac{t}{\tau}; 0<t \leqslant \tau \\ 1; t>\tau} \right.

Среднее значение непрерывной случайной величины

Среднее значение непрерывной случайной величины (математическое ожидание):

M[t] = \int\limits_{-\infty}^{\infty} t f(t) dt = \int\limits_0^{\tau} \frac{t}{\tau} dt = \frac{\tau}{2}

Решение на Python:

import sympy as sm

tau = sm.symbols("tau")
M = tau/2
M
\frac{\tau}{2}

Математическое ожидание квадрата непрерывной случайной величины

Математическое ожидание квадрата непрерывной случайной величины:

M[t^2] = \int\limits_{-\infty}^{\infty} t^2 f(t) dt = \int\limits_0^{\tau} \frac{t^2}{\tau} dt = \frac{\tau^2}{3}

Решение на Python:

import sympy as sm

tau = sm.symbols("tau")
Mt2 = tau**2/3
Mt2
\frac{\tau^2}{3}

Дисперсия непрерывной и среднеквадратичное отклонение случайной величины

Дисперсия непрерывной случайной величины:

D[t] = M[t^2] - M^2[t] = \frac{\tau^2}{12}

Среднеквадратичное отклонение непрерывной случайной величины:

\sigma = \frac{\tau}{2\sqrt{3}} = \frac{\tau}{3.4}

Решение на Python:

import sympy as sm

tau = sm.symbols("tau")
D = tau**2/12
D
\frac{\tau^2}{12}
import sympy as sm

tau = sm.symbols("tau")
sigma = tau/(2*3**.5)
sigma
0.288675134594813\tau

Python анализ математика теория вероятностей

Предыдущая статьяСлучайные величиныСледующая статья Непрерывные случайные величины

Рубрики

Метки

abc abcd AI-Ready платформа Bash Data Lakehouse ELT excel ms sql n8n pandas PostgreSQL PowerShell Python RAG RAW sql tessa VBA xyz ИИ-агент анализ виртуальный помощник гибридное хранилище данных данные знания информационная система информация искусственный интеллект кластерный анализ корпоративная информационная система математика медальон-архитектура модель предоставления прав мудрость о проекте оптимизация практика программное обеспечение ролевая модель сеть; теория теория вероятностей тесса юмор языки программирования

Политика конфиденциальности

Продолжая использовать данный сайт вы подтверждаете свое согласие с условиями его политики конфиденциальности. Подробнее…

Меню

  • Главная страница
  • О проекте
  • Портфолио
  • Блог




Администрация и владельцы данного информационного ресурса не несут ответственности за возможные последствия, связанные с использованием информации, размещенной на нем.


Все права защищены. При копировании материалов сайта обязательно указывать ссылку на © Microsegment.ru (2020-2026)