如何使用 python 中的标准差计算概率

How to work out the probability using standard deviation in python

我有一份学生名单。到目前为止,我有他们去年的出勤率和今年的当前出勤率。我正在尝试计算出他们在年底前低于 90% 的概率。以下是我的数据:

Name  %LastYear AttendedSoFarThisYear  SessionsSoFarThisYear  %SoFarThisYear SessionsNeeded  SessionsLeft
Ethan 97%       218                    232                    94%            52              68
Molly 91%       202                    232                    87%            101             68
Henry 95%       226                    232                    97%            44              68

所以目前我正在通过 SessionsNeeded 除以 SessionsLeft,然后乘以 100 来计算。因此对于 Ethan 来说,有 76% 的可能性,Molly 有 148% 的可能性,Henry 有 65% 的可能性低于 90 %.

不过我认为这种计算概率的方法不是很公平,因为在年初,每个人都没有完成任何会话,因此概率非常高。但我真的希望它能考虑到他们前一年的出勤率,这样在年初,Molly 的概率会比 Ethan 高。

还需要考虑他们目前的出勤率。由于 Henry 实际上有 97% 的时间都在出席,他很可能会继续这样做。而 Molly 略低于 87%,她不太可能赶上。

有人知道我可以使用这些数据解决这个问题吗?最好是 python,甚至是 excel?

您可以根据当年的完成情况来权衡上一年和当年出勤率的重要性。

completion = SessionsSoFarThisYear/TotalSessionsInThisYear

学生的出勤概率等于:

P_attendence(student) = LastYearAttendence(student) * (1 - completion) + ThisYearAttendence(student) * completion

编辑:

下一步是根据学生的出勤率修正 SessionsNeededSessionsLeft 之间的差异 P_attendance:

delta_days(student) = (SessionsLeft * P_attendance(student)) - SessionsNeeded(student)

最后,要获得学生达到 90% 出勤率要求的概率,请使用具有 L = 1 and x0 = 0:

的钳位逻辑函数

Logistic Function

P_passing(student) = 0% if delta_days(student) <= 0, else log_f(delta_days(student))

对于所有否定 delta_days 它 returns 0% 的完成概率,这意味着根据当前对学生出勤率的估计,没有通过的机会。出勤率(估计)越高,跳过的天数越多,今年通过考试的可能性就越高。

编辑2: 90% 的阈值隐藏在 SessionsNeeded 中,用于计算 delta_days.