В Python, как нарисуйте выборку возможных значений, приведенных линейно коррелированными наборами данных и наблюденияPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 В Python, как нарисуйте выборку возможных значений, приведенных линейно коррелированными наборами данных и наблюдения

Сообщение Anonymous »

Моя цель состоит в том, чтобы нарисовать выборку из нескольких возможных значений с учетом двух линейно коррелированных списков и одного наблюдения. Список задачи1_S_LIST Содержит время, необходимое для выполнения задачи 1. Список задачи 2_S_LIST содержит время, необходимые для выполнения задачи 2. У меня есть наблюдение за задачей 1, и я хочу нарисовать образец возможной задачи 2 раза.
Это два списка в их полнометражном

Код: Выделить всё

# Each element reports time in seconds.
task1_s_list = [8.261, 6.768, 6.799, 8.576, 6.077, 6.969, 7.115, 6.824, 9.554, 89.968, 8.288, 7.417, 13.366, 79.087, 136.777, 300.601, 8.311, 9.2, 8.524, 8.385, 8.037, 6.671, 7.96, 9.791, 8.716, 7.868, 8.314, 7.859, 6.234, 7.625, 7.912, 9.396, 6.851, 6.759, 12.73, 8.475, 25.268, 9.449, 10.033, 25.021, 10.214, 6.805, 8.11, 85.979, 19.955, 7.991, 7.203, 7.908, 8.904, 8.518, 7.266, 6.627, 15.994, 7.587, 10.451, 7.883, 7.156, 9.016, 6.36, 8.154, 9.431, 8.073, 7.808, 7.467, 8.977, 8.816, 9.607, 6.645, 6.744, 9.142, 16.369, 7.401, 7.846, 10.198, 13.087, 7.417, 7.914, 7.39, 11.012, 7.059, 7.051, 7.242, 9.859, 19.023, 6.552, 6.415, 7.986, 10.345, 8.189, 7.368, 9.803, 8.92, 8.077, 8.155, 10.005, 7.598, 19.496, 316.133, 6.776, 16.56, 9.523, 8.188, 15.629, 12.187, 60.918, 211.101, 11.455, 7.935, 9.368, 7.914, 8.818, 7.831, 7.776, 7.885, 7.903, 6.122, 6.498, 6.579, 7.107, 7.306, 8.27, 61.425, 7.734, 8.916, 16.361, 15.113, 11.483, 10.574, 18.076, 8.757, 11.996, 8.506, 33.639, 21.998, 7.651, 373.982, 8.834, 9.424, 8.668, 12.22, 11.823, 10.691, 28.323, 13.969, 9.852, 15.033, 12.676, 10.327, 8.849, 9.275, 8.623, 7.883, 8.009, 9.669, 6.871, 8.289, 8.303, 6.795, 24.302, 9.677, 29.261, 11.686, 14.49, 7.868, 6.47, 7.709, 8.965, 7.568, 16.661, 9.878, 6.906, 7.499, 6.715, 8.201, 8.269, 7.734, 10.783, 10.283, 7.636, 9.595, 8.215, 7.076, 9.582, 7.647, 6.594, 13.496, 7.581, 14.253, 9.311, 10.054, 17.524, 14.164, 11.114, 20.825, 29.47, 7.76, 12.946, 13.521, 6.187, 7.51, 7.126, 9.438, 6.751, 7.424, 11.313, 17.128, 7.101, 7.478, 6.176, 9.737, 9.034, 8.779, 95.566, 107.825, 7.931, 16.74, 5.969, 8.596, 15.903, 9.177, 9.158, 7.413, 8.098, 7.192, 8.28, 10.278, 7.327, 6.346, 7.548, 14.934, 8.007, 8.171, 7.206, 8.768, 7.762, 6.431, 7.299, 11.928, 7.962, 15.223, 7.819, 21.7, 10.272, 8.327, 11.678, 296.95, 699.132, 8.392, 7.993, 9.81, 191.506, 410.295, 10.547, 299.388, 9.284, 10.127, 6.004, 6.944, 6.419, 6.249, 7.585, 8.268, 7.811, 6.571, 6.923, 8.215, 8.897, 7.106, 8.903, 13.74, 40.496, 9.874, 6.913, 10.566]
task2_s_list = [40.329, 28.802, 28.689, 39.818, 27.641, 28.427, 28.498, 28.455, 51.843, 1395.098, 48.067, 49.158, 273.825, 783.325, 954.033, 2460.227, 43.842, 43.748, 43.864, 40.45, 44.175, 39.551, 43.555, 49.769, 40.269, 43.48, 44.036, 43.035, 29.655, 31.511, 31.415, 54.972, 31.536, 31.44, 80.874, 40.228, 131.171, 44.257, 55.024, 249.232, 13.04, 42.657, 27.267, 437.694, 349.509, 38.38, 30.606, 42.589, 43.323, 43.371, 38.526, 37.879, 336.318, 43.07, 41.66, 33.585, 33.251, 39.294, 38.523, 38.953, 43.37, 43.834, 38.294, 38.14, 43.007, 42.68, 53.914, 29.499, 29.763, 40.974, 87.315, 31.888, 41.647, 49.892, 102.642, 33.814, 32.635, 29.681, 42.827, 38.783, 37.78, 37.571, 43.255, 148.198, 39.211, 38.312, 49.577, 46.333, 745.478, 38.911, 38.898, 43.121, 43.784, 38.719, 43.715, 53.98, 112.056, 1543.721, 33.278, 79.403, 39.793, 43.856, 388.848, 334.646, 38.936, 8237.702, 43.325, 43.381, 43.573, 43.684, 43.202, 42.987, 37.774, 43.718, 42.956, 29.541, 37.574, 38.851, 30.36, 30.52, 43.09, 255.824, 43.953, 59.053, 702.887, 58.386, 71.165, 42.858, 51.48, 46.884, 43.624, 42.918, 374.963, 359.598, 30.536, 2051.247, 46.378, 42.973, 38.665, 322.069, 72.434, 311.713, 159.998, 48.655, 43.568, 275.505, 48.327, 37.815, 43.436, 43.426, 42.585, 38.407, 37.938, 43.172, 38.648, 37.805, 43.587, 42.201, 424.096, 203.83, 195.634, 346.229, 406.525, 33.798, 38.438, 37.921, 40.845, 24.885, 395.588, 42.642, 40.586, 38.705, 28.66, 43.633, 43.374, 42.384, 322.425, 332.141, 29.04, 49.658, 29.931, 30.624, 67.346, 29.823, 28.815, 63.246, 37.837, 478.228, 41.956, 53.863, 87.771, 51.572, 44.813, 261.167, 46.625, 45.48, 411.919, 312.746, 41.311, 27.893, 32.931, 148.469, 29.224, 46.89, 223.649, 246.862, 29.519, 29.627, 36.262, 48.517, 190.045, 42.81, 571.209, 1113.434, 42.6, 74.559, 28.882, 54.906, 71.8, 45.252, 34.251, 32.272, 40.919, 43.677, 50.803, 243.616, 30.903, 28.337, 29.435, 433.55, 31.341, 29.79, 30.114, 31.59, 33.756, 30.535, 48.8, 89.072, 29.715, 124.685, 43.419, 463.8, 53.518, 59.788, 53.647, 1975.915, 4236.644, 41.836, 57.642, 46.525, 1414.651, 5609.965, 118.995, 1478.973, 46.573, 54.534, 44.393, 32.78, 32.024, 30.388, 33.934, 35.712, 30.059, 38.284, 29.665, 34.291, 19.034, 18.685, 45.118, 79.856, 580.67, 55.181, 19.043, 37.863]
< /code>
Два списка линейно коррелированы в соответствии с коэффициентом корреляции Пирсона.>>> correlation, p_value = pearsonr(task1_s_list , task2_s_list )
>>> print(f"Pearson correlation coefficient: {correlation}")
>>> print(f"P-value: {p_value}")

Pearson correlation coefficient: 0.7678790257160918
P-value: 1.5437238651528808e-54
Проще говоря, вычислять единый прогноз «Задача 2» из наблюдения «Задача 1» с использованием линейной регрессии.

Код: Выделить всё

Observation: 100.0
Prediction 1: 420.0
Prediction 2: 600.0
Prediction 3: 425.9
Prediction 4: 433.8
Prediction 5: 492.9
Prediction 6: 7200.0
Prediction 7: 501.8
Приведенные выше цифры являются иллюстративными и предназначены для выполнения этой гистограммы task2_s/task1_s . Критически, экстремальные предсказания возможны, но редки.

вспыхивает данные x = 4.8, но есть очень длинный хвост. Это предполагает что -то вроде логнормального распределения.
Я не уверен в том, как лучше всего продолжить, но моя идея о том, как перейти отсюда следующим образом:

[*] Использовать scipy.stats.lognorm.fit () в списке. Логинормальное распределение.
[*] Использовать scipy.stats.lognorm.rvs () для построения логнормального распределения и нарисовать случайную выборку.
Умножение каждого случайного значения по моему наблюдению, чтобы получить различный прогноз. task1_s_list-task2_s_list отношения и получить несколько прогнозов на наблюдение?
Если не то, что такое более подходящее решение?>

Подробнее здесь: https://stackoverflow.com/questions/796 ... ed-dataset
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»