Слияние двух статистических наборов результатов

Нет, нет того исходно в платформе. Существует реализация с открытым исходным кодом, которую большинство проектов использует, (т.е. nHibernate) названный Iesi. Наборы. Вот статья CodeProject об этом:

http://www.codeproject.com/KB/recipes/sets.aspx

9
задан Sinan Ünür 26 September 2009 в 07:31
поделиться

3 ответа

Вы можете получить среднее и стандартное отклонение, но не медиану.

new_n = (n(0) + n(1) + ...)
new_mean = (mean(0)*n(0) + mean(1)*n(1) + ...) / new_n

new_var = ((var(0)+mean(0)**2)*n(0) + (var(1)+mean(1)**2)*n(1) + ...) / new_n - new_mean**2

где n (0) - количество прогонов в первом наборе данных, n (1) - это количество прогонов за секунду и так далее, mean - это среднее, а var - это дисперсия (которая представляет собой просто стандартное отклонение в квадрате). n ** 2 означает «n в квадрате».

Получение комбинированной дисперсии основано на том факте, что дисперсия набора данных равна среднему значению квадрата набора данных минус квадрат среднее значение набора данных. На статистическом языке

Var(X) = E(X^2) - E(X)^2

var (n) + mean (n) ** 2 термины выше дают нам часть E (X ^ 2) , которую мы затем можем объединить с другие наборы данных, а затем получите желаемый результат.

В терминах медиан:

Если вы объединяете ровно два набора данных, то можете быть уверены, что объединенная медиана находится где-то между двумя медианами (или равна одной из них), но вы можете сказать немного больше. Принятие их среднего должно быть приемлемым, если вы не хотите избежать того, чтобы медиана не была равна некоторой точке данных.

Если вы объединяете много наборов данных за один раз, вы можете либо взять медианное значение медиан, либо взять их среднее значение. Если между разными наборами данных могут быть значительные систематические различия, то, вероятно, лучше взять их среднее значение, поскольку использование медианы снижает влияние выбросов. Но если у вас есть систематические различия между прогонами, игнорировать их, вероятно, не лучший вариант.

тогда вы можете быть уверены, что объединенная медиана лежит где-то между двумя медианами (или равна одной из них), но вы можете сказать немного больше. Принятие их среднего должно быть приемлемым, если вы не хотите избежать того, чтобы медиана не была равна некоторой точке данных.

Если вы объединяете много наборов данных за один раз, вы можете либо взять медианное значение медиан, либо взять их среднее значение. Если между разными наборами данных могут быть значительные систематические различия, то, вероятно, лучше взять их среднее значение, поскольку использование медианы снижает влияние выбросов. Но если у вас есть систематические различия между прогонами, игнорировать их, вероятно, не лучший вариант.

тогда вы можете быть уверены, что объединенная медиана лежит где-то между двумя медианами (или равна одной из них), но вы можете сказать немного больше. Принятие их среднего должно быть приемлемым, если вы не хотите избежать того, чтобы медиана не была равна некоторой точке данных.

Если вы объединяете много наборов данных за один раз, вы можете либо взять медиану медиан, либо взять их среднее значение. Если между разными наборами данных могут быть значительные систематические различия, то, вероятно, лучше взять их среднее значение, поскольку использование медианы снижает влияние выбросов. Но если у вас есть систематические различия между прогонами, игнорировать их, вероятно, не лучший вариант.

Если вы объединяете множество наборов данных за один раз, вы можете либо взять медианное значение медиан, либо их среднее значение. Если между разными наборами данных могут быть значительные систематические различия, то, вероятно, лучше взять их среднее значение, поскольку использование медианы снижает влияние выбросов. Но если у вас есть систематические различия между прогонами, игнорировать их, вероятно, не лучший вариант.

Если вы объединяете множество наборов данных за один раз, вы можете либо взять медианное значение медиан, либо их среднее значение. Если между разными наборами данных могут быть значительные систематические различия, то, вероятно, лучше взять их среднее значение, поскольку использование медианы снижает влияние выбросов. Но если у вас есть систематические различия между прогонами, игнорировать их, вероятно, не лучший вариант.

21
ответ дан 4 December 2019 в 06:02
поделиться

Артелиус математически прав, но способ, которым он предлагает вычислить дисперсию, численно нестабилен. Вы хотите вычислить дисперсию следующим образом:

new_var=(n(0)*(var(0)+(mean(0)-new_mean)**2) + n(1)*(var(1)+(mean(1)-new_mean)**2) + ...)/new_n

редактировать из комментария
Проблема с исходным кодом в том, что если ваше отклонение мало по сравнению с вашим средним значением, вы в конечном итоге вычтите большое число из большого числа, чтобы получить относительно небольшое число, что приведет к потере точности с плавающей запятой. В новом коде эта проблема устранена; вместо преобразования в E (X ^ 2) и обратно, он просто складывает все вклады в общую дисперсию вместе, должным образом взвешивая в соответствии с размером их выборки.

25
ответ дан 4 December 2019 в 06:02
поделиться

Среднее значение невозможно. Скажем, у вас есть два кортежа (1, 1, 1, 2) и (0, 0, 2, 3, 3). Медианы равны 1 и 2, общая медиана - 1. Трудно сказать.

4
ответ дан 4 December 2019 в 06:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: