Рубрики
Без рубрики

Хакерская статистика с Python.

Думайте вероятно,! У каждого данных есть история, чтобы рассказать. Для этого вам нужно подумать о статистике … Tagged с помощью Python, статистики, DataScience, Luctireed.

У каждого данных есть история, чтобы рассказать. Для этого вам нужно подумать о статистике, говорить на языке своих данных и понять, что вам говорят ваши данные. Основы статистического мышления потребовались десятилетия, но сегодня могут быть захвачены гораздо быстрее с помощью компьютеров. С силой инструментов на основе Python, и это Хакерская статистика Анкет

Очевидно, что данные в изобилии, но есть много вопросов о самих данных, которые могут раскрыть много основных фактов и деталей, таких как:

  • Тип данных.
  • Распределение вероятностей.
  • Центральные тенденции.
  • Диапазон и крайности.

Темы :

[] Испытания Бернулли. [] Начальная загрузка.

Хакерская статистика:

Используйте моделируемые повторяющиеся измерения, чтобы собрать больше информации о данных. Основная идея заключается в том, что вместо буквального повторяющегося сбора данных снова и снова мы можем имитировать эти повторяющиеся измерения с помощью Python. Для нашей первой симуляции мы возьмем сигнал от наших предков. Концепции вероятности возникли из исследований случайностей.

Итак, давайте прыгнем прямо в это.

1. Испытания Бернулли, эксперимент с флип -монет:

  • Предположения о испытаниях Бернулли:
    • 1. Каждое испытание приводит к одному из двух возможных результатов, обозначенных успеха (ы) или неудачи (F).
    • 2. Вероятность S остается постоянным от испытаний до истечения и обозначается P Анкет Написать Q = 1 - P Для постоянной вероятности F Анкет
    • 3. Испытания независимы.

Общий пример: Монетные переворачивания : Есть только два возможных результата A Flip монеты: головы или хвосты, с равной вероятностью 50-50.

Рассмотреть возможность:

A random decimal number d is drawn between 0 and 1.

If :  d >= 0.5 then we get Tails.

Else : d < 0.5 then we get Heads.

В Python:

import numpy as np

np.random.seed(42)

trials = np.random.random(size=4)
print(trials)

[0.37454012 0.95071431 0.73199394 0.59865848]

3 хвоста и 1 голова, это всего лишь 1 моделирование из 4 флипов, но что, если мы смоделируем его 10000 раз по 10 записи каждый? Это почти невозможно сделать вручную. Итак, мы будем использовать Python для выполнения этой работы.

Из каждых 10 плавников мы возьмем несколько голов в учетной записи из каждого моделирования.

import numpy as np

np.random.seed(42)

heads = []
mid = 0

for i in range(10000):
    ten_flips = np.random.random(10) < 0.5
    heads.append(sum(ten_flips))

    #fair odds :probability of 5 heads and 5 tails in each sim.
    if sum(ten_flips) == 5:
       mid+=1

print(mid/10000)

0.2545

Итак, мы получили 5 голов и 5 хвостов из 10 испытаний о 25% времени. Если мы планируем график для каждого возможного результата из 10 испытаний, которые мы получаем:

В Python:

import matplotlib.pyplot as plt
heads, counts_elements = np.unique(heads, return_counts=True)
probability = counts_elements/10000


plt.bar(heads,probability,width=0.95)
plt.xticks([i for i in range(1,11)])
plt.ylim(0,0.3)
plt.xlabel("Number of heads")
plt.ylabel("Probability")
plt.show()

Это биномиальное распределение, подробнее о биномиальном распределении здесь.

Темы :

[x] Бернулли испытания. [] Начальная загрузка.

2. Начальная загрузка:

  • Для любых данных мы можем получить сводную статистику измерений, включая среднее, медиана и стандартное отклонение. Но помните, нам нужно думать о вероятностном, как и. Что если мы снова получили данные? Получим бы то же самое среднее? Тот же медиана? То же стандартное отклонение? Возможно нет. В проблемах вывода редко нас интересует результат одного эксперимента или сбора данных. Мы хотим сказать что -то более общее.

Однако мы можем снова и снова нарисовать образцы из данных популяции и рассчитывать сводную статистику каждой команды.

Кости брось : Существует 6 возможных результатов броска кубиков, каждый из которых с одинаковой вероятностью, это очевидно, что, если мы бросаем одни и те же кубики 10 раз, то это получает среднее значение около 3,0.

import numpy as np

dice_rolls = np.random.randint(1,6,size=10)
print(dice_rolls.mean())

2.8

Но необходимо ли, чтобы, если мы выполняем 10 бросков примерно в 10000 раз, то каждый раз мы получаем одинаковое среднее значение 3,0?

Попробуем это:

import matplotlib.pyplot as plt
import seaborn as sns

roll_means = []

for i in range(10000):
    roll_mean=np.random.choice(dice_rolls,len(dice_rolls)).mean()
    roll_means.append(roll_mean)


ax = sns.histplot(roll_means)
ax2 = ax.twinx()
sns.kdeplot(roll_means,shade=True,ax=ax2)

ci = np.quantile(roll_means,[0.025,0.975])
print(f"Confidence Intervals : {ci}")

for i in ci:
    ax.plot([i,i],[0,1000],c="red")

ax.set_xlabel("Dice Roll Mean (10 rolls)")

plt.show()
Confidence Intervals : [2.  3.7]

Наблюдайте за этими красными вертикальными линиями на графике , область между этими двумя строками штат 95% доверительный интервал. Означает 95% Среднее значение 10 рулонов костей лежит между этим регионом. Узнайте больше о доверительных интервалах Здесь Анкет

Темы :

[x] Бернулли испытания. [x] начальная загрузка.

Вывод:

Используя вычислительные способности, мы можем легко имитировать различные методы, такие как статистический вывод легко и быстро. Это дает хорошее представление о данных и о том, как эффективно использовать данные.

Благодарю вас! Поймай тебя позже. 😄

Оригинал: “https://dev.to/kaydee0502/hacker-statistics-with-python-2kha”