Взятие класса статистики с использованием Python Сценарии. ZyBook не очень хорошо написан, и я нашел много ответов на вопрос об использовании Python через Интернет или ТАК. Тем не менее, есть одна функция, которую я не могу найти, а именно поиск z-показателя, когда вам предоставлены только среднее значение, стандартное отклонение и размер выборки. Я надеюсь, что кто-то может предоставить мне способ Pythoni c, чтобы сделать это.
Это относится к "#Central Limit теореме". Пример - найти вероятность полета авиакомпании. Авиакомпания изучает среднее время прибытия рейсов из города A в город B. Время прибытия (в часах) следует экспоненциальному распределению T с μT = 3,57 часа и σT = 0,59 часа. Предположим, что исследование включает 36 случайно выбранных рейсов из 123 501 общего числа рейсов за период времени. Какова вероятность того, что среднее время полета превышает 3,8 часа?
Используя Python, я могу сделать свои формулы, чтобы получить z-счет, а затем выполнить поиск по z-таблице, чтобы получить мой ответ. Я немного посмотрел и нашел способ получить ztable из Python, используя scipy.stats. Но для поиска по z-счету scipy.stats требуется массив чисел.
import math
import scipy.stats as st
ut = 3.57
#u = uT = mean #divide sum by number of elements
u = ut
#o = oT = standard_deviation is the square root of aiMinusBarX divided by sampleVariance
o = 0.59
#n = sample_size
n = 36
#number_choosen_to_test_to #example: "probability that the mean flight time is greater than 3.8 hours"
t_ = 3.8
# z = zscore #z = (t¯−μT) / σT / sq[n]
tMINUSu = float(t_ - u)
oDIVsqn = float((o / math.sqrt(n)))
tMINUSu = round(tMINUSu, 3)
oDIVsqn = round(oDIVsqn, 3)
z = tMINUSu / oDIVsqn
print("tMINUSu", tMINUSu)
print("oDIVsqn", oDIVsqn)
z = round(z, 3)
print("z-score is ", z)
#To find probabilty on the Z table of P(T¯≥3.8)=P(z≥2.34)=.99036
#zyBooks answer P(T¯≥3.8)=P(z≥2.34)=0.0096
#Take Z answer and look at chart on https://www.ztable.net/
print("Probability by z-table looking up is ", ".00964")
#using Python to find the z-Table lookup get the floor of z round down 2 spaces
floor = math.floor(z*100)/100
print("floor of z ", floor)
print("scipy.stats cdf says z-table pos is ", st.norm.cdf(floor))
print("rounded 5 places ", round(st.norm.cdf(floor),5))
print("scipy.stats cdf says z-table neg is", st.norm.cdf(-floor))
print("rounded 5 places ", round(st.norm.cdf(-floor),5))
Использование вышеуказанного способа дает следующие результаты:
z-score is 2.347
Probability by z-table looking up is .00964
floor of z 2.34
scipy.stats cdf says z-table pos is 0.9903581300546417
rounded 5 places 0.99036
scipy.stats cdf says z-table neg is 0.00964186994535833
rounded 5 places 0.00964
В случае, если вам интересно округление в середина была в том, что я обнаружил, что zyBooks округляют свои ответы до окончательного результата. Они изменили свое округление по 3 различным вопросам до ближайших 3, 4 и 5. Эта проблема была 3-го числа. : (
tMINUSu = round(tMINUSu, 3)
oDIVsqn = round(oDIVsqn, 3)
z = round(z, 3)
Я надеюсь, что есть Pythoni c способ, которым я могу просто взять известное среднее значение, стандартное отклонение, размер выборки и число для проверки для z-показателя.
u = mean (μT)
o = standard_deviation (σT)
n = sample size
t_ = number_choosen_to_test_to
#z = (t¯− μT) / (σT / sqrt[n])
z = (t_ − u) / (o / sqrt[n])