powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Оценить равномерность данных
43 сообщений из 43, показаны все 2 страниц
Оценить равномерность данных
    #38025257
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Представим, что у нас есть массив из 1000 int'ов, пока там нули. Далее заполняем его разными способами (для простоты - только единицами). Задача - оценить равномерность заполнения.

Случай 1. Заполняем единицами с фиксированным шагом, например, 10 нулей - единица - 10 нулей - ....
Очевидно, что это самый равномерный вариант. Если пройтись по массиву, считая длины "пустот" - они будут все одинаковы. Дисперсия этой выборки будет равна нулю.

Случай 2: используя рэндом, записываем 20 единиц в массив (на случайные позиции). Считаем дисперсию аналогичным образом.
Случай 3: все то же самое, только вставка 50 единиц.

Так вот, дисперсия в п.3 будет БОЛЬШЕ, чем в п.2.

Вопрос: какая статистическая мера, какой алгоритм позволяет оценивать равномерность заполнения без привязки к абсолютному количеству элементов? Ведь рэндом в п.2 и п.3 работает по одному и тому же вероятностному закону, степень "неравномерности" должна быть одинаковая.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38025329
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы дисперсию как считаете (и что вообще подразумеваете в приложении к данному множеству)? По значениям или по размеру промежутков?
В любом случае,
TopSpaceСлучай 1.
...
Дисперсия этой выборки будет равна нулю.Неверно априори.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38025370
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

смотрите, нужно оценить регулярность (равномерность) заполнения. Да, берем длины промежутков (количество нулей от одной единицы до следующей). В первом случае все промежутки одинаковые - дисперсия нулевая.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38025825
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceСлучай 2: используя рэндом, записываем 20 единиц в массив (на случайные позиции). Считаем дисперсию аналогичным образом.
Случай 3: все то же самое, только вставка 50 единиц.

Так вот, дисперсия в п.3 будет БОЛЬШЕ, чем в п.2.



Это очень странно: Пусть у нас есть случ. величина X с дисперсией D, какова будет дисперсия случ. величины X/2?

Как Вы считали дисперсию?

Какова у Вас дисперсия, если в данном примере поставить 1000 единиц?
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38025903
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceберем длины промежутков (количество нулей от одной единицы до следующей). В первом случае все промежутки одинаковые - дисперсия нулевая.Тогда да, действительно, если вы оперируете множеством , состоящим из 91 значения, равных 10 (или 11). Но тогда неясно, к чему вообще нужен "...массив из 1000 int'ов, пока там нули..."? Вы просто путаете теплое с мягким, и путаете нас...
Ведь в последующих случаях вы "разбиваете отрезок длиной в 1000 на множество из 21 (31) отрезка с длинами от 0 до 1000". Дисперсии получаемых выборок каким боком должны коррелировать между собой?
Вот если бы вы разбивали исходный отрезок на k+1 отрезков длины от 0 до 1000/k (k=20,30,..) - то еще можно было бы говорить о корреляции диспесии...
TopSpaceВопрос: какая статистическая мера, какой алгоритм позволяет оценивать равномерность заполнения без привязки к абсолютному количеству элементов?А вот отсюда - поподробнее. С физическим смыслом. Приведите пример того, с чем вы работаете - и на основании каких данных желаете оценить "равномерность заполнения".
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38025945
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMTopSpaceВопрос: какая статистическая мера, какой алгоритм позволяет оценивать равномерность заполнения без привязки к абсолютному количеству элементов?А вот отсюда - поподробнее. С физическим смыслом. Приведите пример того, с чем вы работаете - и на основании каких данных желаете оценить "равномерность заполнения".

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

Баз, я угадал ?
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38025951
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
10930610

Предистория , если чЁ :)

зы Если ТС не Базист то всервно полезно будет топик почитать +- 5 страниц вышеуказанного поста.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38025968
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Думаю, будет проще, если посмотреть код. Набросал небольшой кусочек реализации (так-то я использую AForge):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
#include <iostream>
#include <vector>
#include <stdlib.h>
#include <time.h>

// Вычисление дисперсии
float Disp(int* data, size_t size)
{
	typedef std::vector<int> TIntCollection;
	TIntCollection voidLengths;

	bool inVoidPrev = (data[0] == 0);
	int voidLength = inVoidPrev ? 1 : 0;

	// Находим длины пустот
	for (int i=1; i<size; i++)
	{
		bool inVoid = (data[i] == 0);

	        if (inVoid && !inVoidPrev)
        	{
	            inVoidPrev = true;
		    voidLength = 1;
        	}
	        else
        	if (!inVoid && inVoidPrev)
	        {
		    voidLengths.push_back(voidLength);
        	    inVoidPrev = false;
	        }
        	else
	        if (inVoid && inVoidPrev)
        	{
	            voidLength++;
        	}
	}

	if (inVoidPrev) voidLengths.push_back(voidLength);

	// Определяем мат. ожидание 
	size_t N = voidLengths.size();
	float mean = 0.f;
	for (TIntCollection::iterator it = voidLengths.begin(); it != voidLengths.end(); ++it)
	{
	    mean += *it;
	}
	mean /= N;

	// Теперь дисперсия
	float disp = 0.f;
	for (TIntCollection::iterator it = voidLengths.begin(); it != voidLengths.end(); ++it)
	{
	    disp += (float(*it) - mean) * (float(*it) - mean);
	}
	disp /= N;

	return disp;
}


int main()
{
	const int SZ = 10000;
	int* data1 = new int[SZ];
	int* data2 = new int[SZ];
	int* data3 = new int[SZ];

	memset(data1, 0, sizeof(int) * SZ);
	memset(data2, 0, sizeof(int) * SZ);
	memset(data3, 0, sizeof(int) * SZ);

	// Случай 1: равномерное заполнение
	for (int i=0; i<SZ; i+= 50)
	{
	    data1[i] = 1;
	}
	std::cout << Disp(data1, SZ) << std::endl;   // 0

	// Случай 2: случайное заполнение 200 значениями
	srand(time(NULL));

	for (int n=0; n < 2000; n++)
	{
	    data2[rand() % SZ] = 1;
	}
	std::cout << Disp(data2, SZ) << std::endl;   // ~25


	// Случай 3: случайное заполнение 500значениями

	for (int n=0; n < 5000; n++)
	{
	    data3[rand() % SZ] = 1;
	}
	std::cout << Disp(data3, SZ) << std::endl;   // ~5


	delete[] data1;
	delete[] data2;
	delete[] data3;

	return 0;
}
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38025980
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К обозначенному Базисту я отношения не имею) Алгоритм нужен в исследовательских целях, для анализа случайного сигнала с датчика, одна из задач - оценивать "степень упорядоченности". Ну скажем так, условно: когда сигнал представляет собой чередование значений с одинаковыми промежутками (т.е. он регулярен, имеет период) - это "упорядоченность", когда заполнение подчиняется закону равномерного распределения - он "случаен". Вот и возникла мысль использовать матстат, и дисперсию выборки промежутков в частности.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38025987
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про что я и говорил:
TopSpace...
const int SZ = 10000;
...
data2[rand() % SZ ] = 1;
...
Вы заполняете множество отрезками [0;SZ), а анализируете затем отсортированный массив разностей длин... Вы же используете два совершенно разных подхода при заполнении в первом случае - и в других. Было бы правильнее:
Код: sql
1.
2.
3.
4.
5.
	for (int n=0; n < SZ; n+=50)
	{
	    data2[n + rand() % 50] = 1;
	}
	std::cout << Disp(data2, SZ) << std::endl;
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38026018
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,
ну как минимум [n + rand() % 50] здесь даст выход за границы массива. Но речь о другом. Я и не утверждаю, что 1-й и два прочих способа заполнения одинаковы. Они разные, причем случаи 2 и 3 отличаются только "плотностью данных", а вероятностный закон, по которому идет заполнение - одинаковый. И задача найти количественную меру, некий коэффициент равномерности. Т.е. в случае один он будет равен 0, а в случае 2 и 3 - какому-то числу, не важно какому, но ОДНОМУ И ТОМУ ЖЕ. Это позволит сказать (я утрирую, чтобы было проще): ага, в первом случае сигнал явно не случаен, у него есть период, он строго упорядочен. А вот второй и третий - случайные, и мера этой случайности одинакова. Ну и дальше, если мы создадим еще 4-й сигнал, где заполнение будет идти тоже не равновероятно по всему массиву (как в с.2 и с.3), а в окрестностях точек, следующих с фиксированным шагом, мы получим что-то среднее между с.1 и с.2-3 (коэффициент должен это показать).

Могу для упрощения понимания привести следующую физическую иллюстрации, где бы это могло еще применяться. Анализ структуры вещества. В случае кристаллической решетки атомы стремятся занять определенные позиции, у решетки есть фиксированный шаг. У аморфных веществ положения атомов не имеет такой периодичности. Что мы делаем? Формируем выборку расстояний между атомами (условно), и анализируем ее. Все значения одинаковы - очевидна структура. Разные - смотрим разброс. Коэффициент этого разброса должен не зависеть от плотности вещества (т.е. мера должна быть относительной).
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38026098
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceну как минимум [n + rand() % 50] здесь даст выход за границы массива.Покажите значение n, при котором такое произойдёт... Хотя речь действительно не об этом.

Я просто пытаюсь вам сказать, что вы выбрали не совсем удачную модель реализации вашей задачи. Вы, по сути, рисуете в массиве "плотность" распределения исследуемой величины, но не учитываете количество самих значений. Например, если из 200 "значений" 198 придутся на индекс 500, одно - на индекс 400, и одно - на индекс 700 (всего индексов - 1000), то, по вашей логике, будут исследованы четыре промежутка - 400, 100, 200, 300... и какое отношение эти промежутки имеют к тому, что "значения" как раз вполне себе "равномерны", со средним значением около 500 и с достаточно малой дисперсией всей выборки?
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38026110
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceAndreTM,
ну как минимум [n + rand() % 50] здесь даст выход за границы массива. Но речь о другом. Я и не утверждаю, что 1-й и два прочих способа заполнения одинаковы. Они разные, причем случаи 2 и 3 отличаются только "плотностью данных", а вероятностный закон, по которому идет заполнение - одинаковый . И задача найти количественную меру, некий коэффициент равномерности. Т.е. в случае один он будет равен 0, а в случае 2 и 3 - какому-то числу, не важно какому, но ОДНОМУ И ТОМУ ЖЕ. Это позволит сказать (я утрирую, чтобы было проще): ага, в первом случае сигнал явно не случаен, у него есть период, он строго упорядочен . А вот второй и третий - случайные, и мера этой случайности одинакова. Ну и дальше, если мы создадим еще 4-й сигнал, где заполнение будет идти тоже не равновероятно по всему массиву (как в с.2 и с.3), а в окрестностях точек, следующих с фиксированным шагом, мы получим что-то среднее между с.1 и с.2-3 (коэффициент должен это показать).

Могу для упрощения понимания привести следующую физическую иллюстрации, где бы это могло еще применяться. Анализ структуры вещества. В случае кристаллической решетки атомы стремятся занять определенные позиции, у решетки есть фиксированный шаг . У аморфных веществ положения атомов не имеет такой периодичности. Что мы делаем? Формируем выборку расстояний между атомами (условно), и анализируем ее. Все значения одинаковы - очевидна структура. Разные - смотрим разброс. Коэффициент этого разброса должен не зависеть от плотности вещества (т.е. мера должна быть относительной).

Ты тут через слово о периоде говоришь, а как он у тебя вычисляется не совсем совсем не ясно .
Диференцировать тебе нужно , если более точно искать изменения знака производной.
Точки изменения знака - будет твой период.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38026115
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй загнать синусоиду 1 полный период
и 100500 периодов ,
Твои формулы будутдавать тебе приблизительно одно и тоже значение ~ макс/ квадратный корень из двух.
Знаешь что это ?
Это площадь ограниченная твоей синусоидой , от периода зависеть не будет.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38026183
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMПокажите значение n, при котором такое произойдёт... Хотя речь действительно не об этом.
Сорри, не выспался) Такое действительно не произойдет, только если не сделать SZ меньше 50.

AndreTMНапример, если из 200 "значений" 198 придутся на индекс 500,
Такого быть не может. Давайте нарисуем образ:

перед Вами лежит 100 тарелок, у вас есть 10 пирожков, в одну тарелку положить 2 (и более) пирожка нельзя. Можем разложить пирожки с фиксированным шагом (кладем, пропускаем 9 тарелок, кладем,...). Делаем выборку промежутков - они одинаковы, дисперсия ноль. Распределение пирожков абсолютно регулярно (жестко заданный шаг). Другой вариант - раскладываем пирожки абсолютно случайно, где-то пирожки будут лежать на соседних тарелках, где-то будет пропуск в 15 тарелок... Размещение пирожков подчиняется какому-то вероятностному закону (скажем, равномерная вероятность). И вот самое интересное: используя тот же "генератор случайности" мы раскладываем не 10, а 15 пирожков. Задача найти такой алгоритм, который на втором и третьем распределении пирожков даст одно и то же число.
Дисперсия тут не работает. Может нужно брать коэффициент вариации (дисперсия деленная на среднее значение). Может еще что-то.


AndreTMВы, по сути, рисуете в массиве "плотность" распределения исследуемой величины, но не учитываете количество самих значений.

В этом и состоит задача: уйти от зависимости коэффициента "равномерности заполнения" от количества значений. Смотрите:

Код: plaintext
1.
2.
3.
4.
5.
	int data1[] = {0, 0, 1, 0, 0, 1, 0, 1, 0};
	int data2[] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0};
	
	std::cout << Disp(data1, sizeof(data1) / sizeof(data1[0])) << std::endl;   // 0.25
	std::cout << Disp(data2, sizeof(data2) / sizeof(data2[0])) << std::endl;   // 1



Эти сигналы имеют идентичную структуру заполнения! 4 промежутка, два из которых в 2 раза больше двух других. Изобразить условно это можно так:
**x**x*x*
за * может скрываться хоть 2, хоть 1000 значений - это не должно влиять. Дисперсия "промежутков" тут получается разная.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38026190
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДохтаР,

синусоида это гармонический сигнал, а речь идет об анализе случайных. Да, может быть спектральный анализ - помог бы. Если построить спектр сигнала, где значения на фоне нулей идут с неким шагом - увидим sinc(x) (сигнал ведь по сути представляет собой меандр с некоторой скважностью). Если построить спектр шума - увидим прямую линию (гармоники на всех частотах в пределах половины частоты дискретизации). Но это спектр, а нужно одно число:) Коэффициент.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38026397
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceДохтаР,

синусоида это гармонический сигнал, а речь идет об анализе случайных. Да, может быть спектральный анализ - помог бы. Если построить спектр сигнала, где значения на фоне нулей идут с неким шагом - увидим sinc(x) (сигнал ведь по сути представляет собой меандр с некоторой скважностью). Если построить спектр шума - увидим прямую линию (гармоники на всех частотах в пределах половины частоты дискретизации). Но это спектр, а нужно одно число:) Коэффициент.

Для гармоничного сигнала частота будет твоим числом.

А для случайного ты получишь среднюю температуру по больнице,
приблизительно одинаковую для всех больниц,
и в основном зависящую от количества занятых мест в холодильнике в морга :).
Оно ли тебе нужно ?
Почему ты за него вцепился ? ( риторический вопрос)
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38026755
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В целом, я так и не увидел внятного обоснования, зачем ТС нужно распределять и анализировать именно так, как он делает... Никакого прикладного смысла в задаче, а автор еще и сам себе противоречит: то " в одну тарелку положить 2 (и более) пирожка нельзя " , то data2[rand() % SZ] = 1 (а кто сказал, что одно и то же "случайное" число не выпадет несколько раз?)
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38026846
f2f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
f2f
Гость
а я бы все-таки использовал спектральное разложение.
если нужно одно число, то это отношение амплитуды основной гармоники к сумме всех амплитуд.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38026850
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM data2[rand() % SZ] = 1 (а кто сказал, что одно и то же "случайное" число не выпадет несколько раз?)

Запросто) Если из 50 значений 10 попадут в те ячейки, которые уже заняты - мы получим случайное распределение 40, а не 50 значений. Особо это ничего не меняет, это ж наколеночный пример.


AndreTM зачем ТС нужно распределять и анализировать именно так, как он делает...
Да не обязательно именно так) Как угодно, главное - получить результат. Обозначу задачу еще более конкретно:

представим датчик, выдающий случайный сигнал - мы его записываем. Потом мы влияем на датчик таким образом, что характер генерации случайного сигнала меняется. Понимаю, что математически так говорить не грамотно, но фактически сигнал становится "менее случайным". Как крайний вариант, он вообще перестает быть случайным, и становится строго периодичным. Задача сравнить 2 эти сигнала, и выявить, произошли ли изменения.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38026852
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
f2fесли нужно одно число, то это отношение амплитуды основной гармоники к сумме всех амплитуд.
Интересно. А что стоит за этим отношением (физический, математический смысл) ?
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38027104
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceДа не обязательно именно так) Как угодно, главное - получить результат. Обозначу задачу еще более конкретно:

представим датчик, выдающий случайный сигнал - мы его записываем. Потом мы влияем на датчик таким образом, что характер генерации случайного сигнала меняется. Понимаю, что математически так говорить не грамотно, но фактически сигнал становится "менее случайным". Как крайний вариант, он вообще перестает быть случайным, и становится строго периодичным. Задача сравнить 2 эти сигнала, и выявить, произошли ли изменения.

Так в чем проблема , ловишь точку изменения знака производной
( переход последовательности из возрастающей в убывающую и наоборот)
сравниваешь растояния между этими точками по оси времени.
Чем меньше разница растояний , тем выше вероятность, что закон переодический.
Мало первой производной ,
заворачиваем вышесказанное в рекурсию получаем производную N порядка на глубину рекурсии.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38027243
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpacef2fесли нужно одно число, то это отношение амплитуды основной гармоники к сумме всех амплитуд.
Интересно. А что стоит за этим отношением (физический, математический смысл) ?



Физический - КПД
авторНесинусоидальность — вид нелинейных искажений напряжения в электрической сети, который связан с появлением в составе напряжения гармоник с частотами, многократно превышающими основную частоту сети. Высшие гармоники напряжения оказывают отрицательное влияние на работу системы электроснабжения, вызывая дополнительные активные потери в трансформаторах, электрических машинах и сетях; повышенную аварийность в кабельных сетях; уменьшение коэффициента мощности за счёт мощности искажения, вызванной протеканием токов высших гармоник; а также ограниченное применение батарей конденсаторов для компенсации реактивной мощности.

Источниками высших гармоник тока и напряжения являются электроприёмники с нелинейными нагрузками. Например, мощные выпрямители переменного тока, применяемые в металлургической промышленности и на железнодорожном транспорте, газоразрядные лампы и др.


Математический - разница площадей.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38027289
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceАлгоритм нужен в исследовательских целях, для анализа случайного сигнала с датчика, одна из задач - оценивать "степень упорядоченности". Ну скажем так, условно: когда сигнал представляет собой чередование значений с одинаковыми промежутками (т.е. он регулярен, имеет период) - это "упорядоченность", когда заполнение подчиняется закону равномерного распределения - он "случаен". Вот и возникла мысль использовать матстат, и дисперсию выборки промежутков в частности.
А попробуйте построить график с накоплением и аппроксимировать его прямой. И наклон этой прямой, и нулевой отрезок, и среднее отклонение в принципе могут характеризовать и сам процесс, и его "равномерность"... если же процесс имеет некий физический смысл, то угол наклона или отрезок могут иметь некое предопределённое (фиксированное либо дискретизованное) значение (например отрезок должен быть нулевым)...
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38027341
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceAndreTM data2[rand() % SZ] = 1 (а кто сказал, что одно и то же "случайное" число не выпадет несколько раз?)

Запросто) Если из 50 значений 10 попадут в те ячейки, которые уже заняты - мы получим случайное распределение 40, а не 50 значений. Особо это ничего не меняет, это ж наколеночный пример.


AndreTM зачем ТС нужно распределять и анализировать именно так, как он делает...
Да не обязательно именно так) Как угодно, главное - получить результат. Обозначу задачу еще более конкретно:

представим датчик, выдающий случайный сигнал - мы его записываем. Потом мы влияем на датчик таким образом, что характер генерации случайного сигнала меняется. Понимаю, что математически так говорить не грамотно, но фактически сигнал становится "менее случайным". Как крайний вариант, он вообще перестает быть случайным, и становится строго периодичным . Задача сравнить 2 эти сигнала, и выявить, произошли ли изменения.Если выделенное верно, то имеем комбинацию белого шума и чистого тона, и Вам нужно разложение сигнала по Фурье; учтите, что следует разделять случай "частота тона известна" и "частота тона неизвестна", во втором варианте следует как следует осознать, как именно выглядит разложение по Фурье "чистого" белого шума.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38027487
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ошибаюсь или для определения зависимости (необязательно периодической) считают автокорреляцию?
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38027601
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceAndreTM data2[rand() % SZ] = 1 (а кто сказал, что одно и то же "случайное" число не выпадет несколько раз?)Запросто) Если из 50 значений 10 попадут в те ячейки, которые уже заняты - мы получим случайное распределение 40, а не 50 значений. Особо это ничего не меняет , это ж наколеночный пример.AndreTMЯ просто пытаюсь вам сказать, что ... не учитываете количество самих значений. Например, если из 200 "значений" 198 придутся на индекс 500, одно - на индекс 400, и одно - на индекс 700 (всего индексов - 1000), то, по вашей логике, будут исследованы четыре промежутка - 400, 100, 200, 300... и какое отношение эти промежутки имеют к тому, что "значения" как раз вполне себе "равномерны"..?Вам еще раз повторить? По вашей логике (без накопления информации о количестве значений) - вы в большинстве случаев получите для "исследования" цифры, никакого отношения к исходной последовательности не имеющие.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38027631
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceпредставим датчик, выдающий случайный сигнал - мы его записываем. Потом мы влияем на датчик таким образом, что характер генерации случайного сигнала меняется... Как крайний вариант, он вообще перестает быть случайным, и становится строго периодичным. Задача сравнить 2 эти сигнала , и выявить, произошли ли изменения.Уже ближе к постановке задачи.
Но что вы подразумеваете под "сигналом"? Непрерывный аналоговый поток, который нужно дискретизировать и оцифровать? Тактированные импульсы (возможно, с изменяющейся амплитудой)? Еще что-то?
Нельзя просто сказать "ну вот же я написал в программе, как, типа, выглядит сигнал1, сигнал2 ". Вы должны показать, что по одинаковой методике закодировали параметры исходных сигналов каждого процесса, которые будете исследовать/сравнивать.
"Выявление изменений" какого плана необходимо? Обнаружить "неслучайность" (периодичность) определенного сигнала? Сравнить два сигнала на предмет "большей случайности/периодичности одного из них? Или просто обнаружить, что "сигналы различны" ?
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38027819
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMНо что вы подразумеваете под "сигналом"? Непрерывный аналоговый поток, который нужно дискретизировать и оцифровать?

Он уже оцифрован, поступает с датчика через USB с фиксированной частотой. Ну скажем так, программа получает поток даннных, т.е. 10 раз в секунду прилетает массив байтов одной и той же размерности (скажем, 1000 элементов). Большинство элементов в этом сигнале - нули, есть ненулевые.


AndreTM"Выявление изменений" какого плана необходимо? Обнаружить "неслучайность" (периодичность) определенного сигнала? Сравнить два сигнала на предмет "большей случайности/периодичности одного из них?

Пока сложно сказать (тем более, математически грамотно) о каких изменениях идет речь. Если упрощенно, то "неслучайность", да. Записали 3 сигнала, то есть имеем 3 массива по миллиарду байт, и нужно показать (лучше в виде 3-х наложенных графиков) их "коэффициенты упорядоченности", где будет видно, что второй "менее случаен" чем первый, а третий "еще более структурирован" чем второй. Какова природа этой структурированности - неизвестно, да и пока не важно.

Что вообще означает "структурированность"? Я это понимаю так: наличие регулярности в структуре. Поэтому, пока нет желания смотреть сами значения, лежащие в массиве, хочется смотреть их распределение по массиву. Пусть там лежат хоть единички, хоть десятки, хоть 255 - не важно, важно как они распределены "в пространстве". Мы включаем поле, от которого датчик начинает выдавать другой сигнал, и нужно алгоритмом зафиксировать, что да, сигнал стал другим, "менее случайным".
Ситуация осложняется тем, что включение поля повышает плотность сигнала, т.е. количество ненулевых элементов массива. Если бы оно было бы всегда одинаковым, достаточно было бы того кода, что я привел в начале - считаем длины нулевых промежутков, строим их дисперсию. Чем ближе она к нулю - тем сигнал более упорядочен. Ну или строим спектр. У идеального шума он будет просто линией (горизонтальной), при появлении регулярности в структуре, появятся гармоники. Но для разной плотности сигнала это все не работает.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38028226
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpace Что вообще означает "структурированность"? Я это понимаю так: наличие регулярности в структуре. Поэтому, пока нет желания смотреть сами значения, лежащие в массиве, хочется смотреть их распределение по массиву. Пусть там лежат хоть единички, хоть десятки, хоть 255 - не важно, важно как они распределены "в пространстве". Мы включаем поле, от которого датчик начинает выдавать другой сигнал, и нужно алгоритмом зафиксировать, что да, сигнал стал другим, "менее случайным".
Ситуация осложняется тем, что включение поля повышает плотность сигнала, т.е. количество ненулевых элементов массива. Если бы оно было бы всегда одинаковым, достаточно было бы того кода, что я привел в начале - считаем длины нулевых промежутков, строим их дисперсию. Чем ближе она к нулю - тем сигнал более упорядочен. Ну или строим спектр. У идеального шума он будет просто линией (горизонтальной), при появлении регулярности в структуре, появятся гармоники. Но для разной плотности сигнала это все не работает.Осталось понять, что Вы понимаете под "регулярностью в структуре". Насколько я понимаю, исходная задача - есть два сигнала, шумовой и информационный, "наложенные" друг на друга. По-видимому, шумовой сигнал - белый шум, информационный - равномерные "ступеньки" (известной продолжительности? неизвестной?). Если наложение - простое суммирование, задача вообще хрестоматийная; если XOR - чуть похуже, но те же методы должны сработать.
Если сказанное соответствует Вашей задаче, всё-таки попробуйте Фурье. "Ступеньки" должны быть достаточно хорошо видны: характерными лепестками на диаграмме, "выступающими" из равномерного шума.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38028655
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Abstractionесть два сигнала, шумовой и информационный, "наложенные" друг на друга. По-видимому, шумовой сигнал - белый шум, информационный - равномерные "ступеньки" (известной продолжительности? неизвестной?).
Ну почти, есть два сигнала: шум, и "модифицированный шум", в котором произошли некие структурные изменения. Это словно взяли сигнал шума, и переставили в нем байты таким образом, чтобы они шли не со случайными промежутками, а с некоторым (неизвестным) шагом. Короче говоря, что-то в шуме изменилось) И нужно оценить (желательно, количественно) что это уже "не совсем шум". Т.е. сигнал уже выходит за рамки того вероятностного закона, которому подчиняется первый.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38028689
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceAbstractionесть два сигнала, шумовой и информационный, "наложенные" друг на друга. По-видимому, шумовой сигнал - белый шум, информационный - равномерные "ступеньки" (известной продолжительности? неизвестной?).
Ну почти, есть два сигнала: шум, и "модифицированный шум", в котором произошли некие структурные изменения. Это словно взяли сигнал шума, и переставили в нем байты таким образом, чтобы они шли не со случайными промежутками, а с некоторым (неизвестным) шагом. Короче говоря, что-то в шуме изменилось) И нужно оценить (желательно, количественно) что это уже "не совсем шум". Т.е. сигнал уже выходит за рамки того вероятностного закона, которому подчиняется первый.Выделенное - очень странная формулировка. Я не представляю себе реальных процессов, способных породить такой эффект. Если имеем сложный случайный процесс, который нельзя (хотя бы приближённо) рассматривать как суперпозицию элементарных, это может быть очень неприятно. Важно понимать, что любые применимые оценки "случайности сигнала" в том или ином виде опираются на некоторые предположения о природе этого самого сигнала. "Чистый" белый шум, как вариант, можно определять как малый разброс по интенсивности различных гармоник (или любого иного разложения по "достаточно хорошему" базису, если на то пошло). Чем больше разброс - тем меньше вероятность получения картины с таким или большим разбросом при условии, что сигнал есть белый шум.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38028726
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Abstraction,

пример можно привести простой. Есть сложная антенна, состоящая из 1000 небольших принимающих устройств, расположенных последовательно (в виде линии). Сигнал снимается сразу со всех, т.е. приходит в виде массива 1000 байт (если считать, что значение сигнала с одного датчика - 1 байт). Антенна настроена на прием потока энергии, от которого датчики шумят, т.е. выдают 1 (на самом деле 1..255, но это пока не важно) или 0 вне зависимости друг от друга. Следовательно, если нарисовать массив (это как один "кадр" сигнала) в виде 01011101010, то расположение единичек случайное, длины пробелов между ними случайны. Вот антенна уловила такой поток энергии, который заставляет шуметь датчики с фиксированным шагом. Это как крайняя степень влияние потока энергии, возможны и все промежуточные.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38028774
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceAbstraction,

пример можно привести простой. Есть сложная антенна, состоящая из 1000 небольших принимающих устройств, расположенных последовательно (в виде линии). Сигнал снимается сразу со всех, т.е. приходит в виде массива 1000 байт (если считать, что значение сигнала с одного датчика - 1 байт). Антенна настроена на прием потока энергии, от которого датчики шумят, т.е. выдают 1 ( на самом деле 1..255, но это пока не важно ) или 0 вне зависимости друг от друга. Следовательно, если нарисовать массив (это как один "кадр" сигнала) в виде 01011101010, то расположение единичек случайное, длины пробелов между ними случайны. Вот антенна уловила такой поток энергии, который заставляет шуметь датчики с фиксированным шагом . Это как крайняя степень влияние потока энергии, возможны и все промежуточные.Во-первых, важно. Потому что это означает, что до достижения значения 255 интенсивности сигнала и шума будут складываться, что важно для некоторых методов.
Во-вторых, "шуметь с фиксированным шагом" - странный оборот. В описанном эксперименте, если только датчики не какие-то сверхбыстрые, пришедший импульс будет прочитан ими всеми в один и тот же такт. Более того, задача у Вас тогда двумерная: есть 1000 датчиков, которые выдают результаты в моменты времени 0, 1, 2... И задач здесь может быть много разных. К примеру - искать всплески (считаем сумму по всем датчикам в каждый момент времени, рисуем график суммы от времени, видим пики). Или, действительно, приходит нечто хитро распределённое в пространстве и надо отловить это "нечто" на фоне шума - тогда, если "нечто" повторяется, может быть хорошей идеей считать среднее квадратов показаний конкретного датчика по времени. Ну, опять же, можно пробовать Фурье, но надо быть уже очень осторожными, чтобы не получить ошибки первого рода за счёт большого числа испытаний или нечёткой формулировки методики... кажется, кто-то когда-то уже об этом Вам говорил.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38028978
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceAbstraction,

пример можно привести простой. Есть сложная антенна, состоящая из 1000 небольших принимающих устройств, расположенных последовательно (в виде линии). Сигнал снимается сразу со всех, т.е. приходит в виде массива 1000 байт (если считать, что значение сигнала с одного датчика - 1 байт). Антенна настроена на прием потока энергии, от которого датчики шумят, т.е. выдают 1 (на самом деле 1..255, но это пока не важно) или 0 вне зависимости друг от друга. Следовательно, если нарисовать массив (это как один "кадр" сигнала) в виде 01011101010, то расположение единичек случайное, длины пробелов между ними случайны. Вот антенна уловила такой поток энергии, который заставляет шуметь датчики с фиксированным шагом. Это как крайняя степень влияние потока энергии, возможны и все промежуточные.

С этого нужно было начинать .

Этот пример для фундаментальной науки особого интереса не представляет .

Не случайны, а зависят от угла, на который отклонен источник сигнала относительно перпендикуляра
линии датчиков.

Для вычисления направления фиксированного местоположения источника 1 производная.
Для движущегося вторая ( изменение фазы).
Не забудьте учесть растояние между датчиками в пересчете на длину волны :)
Имменно изза несогласованности длины волны и растояния между датчиками вы получаете при неизвестном угле якобы псевдослучайные показания.
Потому как неизвестных в системе уравнений больше чем уравнений.
И это все при условии , что у вас синхронизация измерений правильная.

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



Приблизительно так.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38029021
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник

фундаментальный закон описывающий физику процесса с датчиками и излучателями


Изменение разности амплитуд на датчиках относительно перпендикуляра
дает возможность достаточно просто посчитать угол падения волны на линию датчиков.

зы Я сначала был физиком СВЧ , а потом уже админом стал ввиду отсутствия работы по профилю
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38029232
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я извиняюсь, что излагаю нечетко, и толком не могу обрисовать задачу) Просто, она сугубо исследовательская (фазированная решетка - близко, но немного не то), и многое пока непонятно даже в теории. Но я все-таки придерживаюсь изначальной формулировки: вычисление степени разброса промежутков. Спектр - это пока самое близкое, что нащупывается. Иными словами: как понять, что сигнал случайный? Спектр. Ну или еще "более другими" словами:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
int[] x1 = {0, 0, 1, 0};
int[] x2 = {0, 0, 0, 0, 1, 0, 0};

bool isTheSameSignalStruct = Math.Abs( f(x1) == f(x2) );

...
double f (int[] data)
{
   вот тут должно быть что-то хитрое
}
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38029235
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ой,
Код: c#
1.
bool isTheSameSignalStruct = Math.Abs( f(x1) - f(x2) ) < epsilon;
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38029245
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceЯ извиняюсь, что излагаю нечетко, и толком не могу обрисовать задачу) Просто, она сугубо исследовательская (фазированная решетка - близко, но немного не то), и многое пока непонятно даже в теории. Но я все-таки придерживаюсь изначальной формулировки: вычисление степени разброса промежутков. Спектр - это пока самое близкое, что нащупывается. Иными словами: как понять, что сигнал случайный? Спектр. Ну или еще "более другими" словами:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
int[] x1 = {0, 0, 1, 0};
int[] x2 = {0, 0, 0, 0, 1, 0, 0};

bool isTheSameSignalStruct = Math.Abs( f(x1) == f(x2) );

...
double f (int[] data)
{
   вот тут должно быть что-то хитрое
}




А вы ученный муж или кодер ( программист) ?
У любой исследовательской задачи есть начальные и граничные условия,
то что вы привели , в качестве исходных данных никак нельзя назвать условиями,
это только факты полученные при непонятных условиях и обстоятельствах.

Решение любой исследовательской задачи сводится к составлению системы уравнений.
У вас хоть одно уравнение из этой системы есть ?

Зы Без обид , но ваш подход мне напоминаяет
действия менеджера чуть выше среднего уровня.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38029305
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceИными словами: как понять, что сигнал случайный?Считайте корреляцию.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38029312
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в душе ученый,
по образованию и роду деятельности - программист)

Да, Вы правы, пока это все назвать полноценным исследованием нельзя. Делаю это в свободное от работы время, на коленке, в очень сжатые сроки, не всегда последовательно и обстоятельно.

До уравнений еще не дошел, пока на стадии создания модели процесса. Т.е. чтобы просто получить первый результат на уровне "да, тут что-то происходит интересное". Ну точнее, что оно происходит, я вижу по косвенным признакам, нужно подвести минимальную формальную базу под это. Есть успешный опыт решения исследовательских задач через программирование. Не написание программы, реализующей заданный алгоритм, вышедший из уравнений и модели, а именно взгляд на теоретическую проблему чисто глазами программиста, пусть где-то наивно, но в области совершенно неизученной это даже плюс.
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38029314
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovСчитайте корреляцию.
Автокорреляция первого сигнала, или корреляция первого и второго сигнала? И что фактически мне даст коэффициент корреляции, как его использовать?
...
Рейтинг: 0 / 0
Оценить равномерность данных
    #38029638
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceАвтокорреляция первого сигнала, или корреляция первого и второго сигнала?Зависит от того, что именно хотите получить.
Если ваши пачки отсчётов снимаются с соответствующего числа физических датчиков, то автокорреляция, скорее всего, выделит "пространственную зависимость", корреляция между соседними отсчётами - "временнУю зависимость".И что фактически мне даст коэффициент корреляции, как его использовать?Если ноль - сигналы датчиков статистически независимы и мы наблюдаем (только) шум.
Кроме того, корреляция позволяет считать не только коэффициенты, но и функции, для которых будет "выброшена" случайная составляющая. То, что получится можно будет анализировать дальше.

P.S. А вообще - пробежался по википедии и понял, что подзабыл то немногое, что знал :)
...
Рейтинг: 0 / 0
43 сообщений из 43, показаны все 2 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Оценить равномерность данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]