Как использовать stats.norm в python для решения вопроса ниже, относящегося к распределению вероятностей - PullRequest
0 голосов
/ 05 мая 2020

Я столкнулся с этим вопросом в книге ML, которая больше похожа на математический вопрос, чем на ML. Буду признателен, если вы дадите мне решение со статистикой или любыми пакетами, привязанными к python

Согласно опросу об использовании пестицидов среди 1000 фермеров в виноградарстве на площади около 10 акров виноградных угодий, это было обнаружили, что фермеры, выращивающие виноград, распыляют 38 литров пестицидов в неделю, в среднем с соответствующим стандартным отклонением 5 литров. Предположим, что распыление пестицидов в неделю соответствует нормальному распределению. Напишите код, чтобы ответить на следующие вопросы:

(a) Какая часть фермеров распыляет более 50 литров пестицидов в неделю? (b) Какая часть фермеров опрыскивает менее 10 литров? (c) Какая часть фермеров опрыскивает от 30 до 60 литров?

1 Ответ

1 голос
/ 05 мая 2020

Я отправлю свой ответ, предполагая, что это не часть домашнего задания для класса.

Вопрос предоставляет информацию о среднем и дисперсии распределения, которые равны 38 и 5 соответственно. Предполагая гауссово распределение, мы можем ответить на вопрос, подставив соответствующие значения в кумулятивную функцию распределения . Для расчета CDF мы используем scipy.

Первый вопрос задает «долю фермеров, использующих более 50 литров пестицидов в неделю». В коде это переводится в:

from scipy.stats import norm

print(1 - norm.cdf(50, 38, 5)) # 0.008197535924596155, or ~ 0.8 percent

Обратите внимание, что мы вычитаем из 1, поскольку вопрос требует 50 или более, а не до 50, что мы получили бы, если бы использовали значение, возвращаемое функцией CDF как есть.

Для (b) мы можем сделать

print(norm.cdf(10, 38, 5)) # 1.0717590258310887e-08

Это даст нам долю фермеров, использующих 10 литров пестицидов или меньше.

В отношении последнего вопроса мы можем применить тот же подход, с небольшими изменениями:

print(norm.cdf(60, 38, 5) - norm.cdf(30, 38, 5)) # 0.9451952957565343

Сначала мы вычисляем norm.cdf(60, 38, 5), что дает нам долю фермеров, использующих 60 литров пестицидов или меньше. . Из этого мы вычитаем norm.cdf(30, 38, 5), то есть долю фермеров, которые используют 30 литров или меньше. По определению, это даст нам, фермерам, использовать количество пестицидов в диапазоне [30, 60], что и задается вопросом.

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

...