У меня есть большой объем данных для построения ECDF, но я запутался, поэтому решил использовать небольшой подмножество данных, которое все еще не имело для меня смысла (как полное по сравнению с тем, что я прочитал из источника).< /p>
Для этого я создал синтетический MWE, чтобы воспроизвести проблему. Скажем, у меня есть следующий df:
В этом примере 50 % поездок (2/4) совершил 1 пользователь. Я хочу построить график количества поездок на одного пользователя. Итак, действовали следующим образом:
У меня есть большой объем данных для построения ECDF, но я запутался, поэтому решил использовать небольшой подмножество данных, которое все еще не имело для меня смысла (как полное по сравнению с тем, что я прочитал из источника).< /p> Для этого я создал синтетический MWE, чтобы воспроизвести проблему. Скажем, у меня есть следующий df: [code]import pandas as pd import seaborn as sns import matplotlib.pyplot as plt import seaborn as sns
sns.set(style="whitegrid")
# DataFrame df = pd.DataFrame( {'id': [54, 54, 54, 54, 54, 16, 16, 16, 50, 50, 28, 28, 28, 19, 19, 32, 32, 32, 81, 81, 81, 81, 81], 'user_id': [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 84, 84, 84, 84, 84, 179, 179, 179, 179, 179], 'trip_id': [101, 101, 101, 101, 101, 101, 101, 101, 102, 102, 102, 102, 102, 841, 841, 841, 841, 841, 1796, 1796, 1796, 1796, 1796], 'travel_mode': ['train', 'train', 'train', 'train', 'train', 'walk', 'walk', 'walk', 'train', 'train', 'train', 'train', 'train', 'taxi', 'taxi', 'bus', 'bus', 'bus', 'train', 'train', 'train', 'train', 'train']} ) [/code] В этом примере 50 % поездок (2/4) совершил 1 пользователь. Я хочу построить график количества поездок на одного пользователя. Итак, действовали следующим образом: [code]# number of trips per user trips_per_user = df.groupby('user_id')['trip_id'].nunique()
trips_per_user trip_id user_id 10 2 84 1 179 1
# Create a DataFrame for plotting plot_data = trips_per_user.reset_index(name='num_trips')
plot_data user_id num_trips 0 10 2 1 84 1 2 179 1 [/code] Теперь построим график ECDF. [code]# ECDF plt.figure(figsize=(5, 4)) sns.ecdfplot(data=plot_data, x='num_trips', stat='proportion', complementary=False) plt.xlabel('Number of Trips') plt.ylabel('Cumulative Proportion') [/code] Вывод: [img]https://i.sstatic.net/GP6j9ooQ.png[/img] Очевидно, я делаю это неправильно. [list] [*]1 поездка была совершена в 50% данных (а не примерно в 70%, как в сюжете получается). [*]Кривая ECDF не начинается с 0. [/list] Требуемый ответ: Я хотел чтобы построить что-то вроде ниже (из источника): [img]https://i.sstatic.net/oJqC15tA.png[/img]
У меня есть большой объем данных для построения ECDF, но я запутался, поэтому решил использовать небольшой подмножество данных, которое все еще не имело для меня смысла (как полное по сравнению с тем, что я прочитал из источника).
Для этого я...
Я ищу численно стабильные реализации функций, представленных ниже. Поскольку мое приложение касается распределения t, я использую здесь распределение t в качестве примера.
Log CDF
# Naive Python implementation of the function I need
Мне нужны численно стабильные реализации функций, представленных ниже. Поскольку мое приложение касается распределения t, я использую здесь распределение t в качестве примера.
Log CDF
# Naive Python implementation of the function I need
Мне нужны численно стабильные реализации функций, представленных ниже. Поскольку мое приложение касается распределения t, я использую здесь распределение t в качестве примера.
Log CDF
# Naive Python implementation of the function I need