Меню

Сложный пример обработки массива

Двумерная разреженная таблица

Двумерная разреженная таблица (англ. 2D Sparse Table) — структура данных, которая позволяет решать задачу online static RMQ.

Задача:
Дан двумерный массив [math]A[1 \ldots N][1 \ldots M][/math] целых чисел. Поступают запросы вида [math](x_1, y_1, x_2, y_2)[/math] такие, что [math] x_1 \leqslant x_2 [/math] и [math] y_1 \leqslant y_2 [/math] , для каждого из которых требуется найти минимум среди [math]A[i][j], x_1 \leqslant i \leqslant x_2 [/math] и [math] y_1 \leqslant j \leqslant y_2 [/math] .

Содержание

  • 1 Структура 2D Sparse Table
  • 2 Реализация 2D Sparse Table
    • 2.1 Построение
    • 2.2 Ответы на запросы
    • 2.3 Обобщение на большие размерности
  • 3 См. также

Структура 2D Sparse Table [ править ]

В целом структура 2D Sparse Table схожа со структурой обычной разреженной таблицы.

Разреженная таблица представляет собой четырехмерный массив: [math]ST[N][M][LOGN][LOGM][/math] , где [math]LOGN = \log(N), LOGM = \log(M)[/math] .

[math] ST[i][j][k_1][k_2] = \min\limits_-1, c = j,\ldots,j + 2^-1> A[r][c], r \lt N, c \lt M [/math]

То есть в ячейке структуры мы храним минимум для подматрицы, длины сторон которого являются некоторыми степенями двойки.

STP1.png

SparseTableExample1Picture.png

Слева изображен общий случай. Пусть [math]n + 1[/math] — количество строк, [math]m + 1[/math] — количество столбцов массива A. Рассмотрим элемент на позиции [math](i, j)[/math] , который выделен желтым цветом. Данный элемент является левым верхним углом прямоугольника, стороны которого равны [math]2^[/math] и [math]2^[/math] . Прямоугольна выделен красным, а проекции его сторон — зеленым. Тогда в [math]ST[i][j][k_1][k_2][/math] будет храниться минимум из всех элементов, которые входят в красную и желтую область.

Справа изображен частный случай, когда N = 11, M = 11. Посмотрим, что будет храниться в [math]ST[2][1][2][3][/math] : Клетка (2, 1), которая выделена желтым цветом, является левым верхним углом красного прямоугольника, длины сторон которого [math]2^<2>[/math] и [math]2^<3>[/math] (проекции этих сторон выделены зеленым цветом). И по определению выше, [math]ST[2][1][3][2][/math] хранит минимум из элементов красной области.

Реализация 2D Sparse Table [ править ]

Построение [ править ]

Изначально заполним таблицу следующим образом:

Далее мы считаем одномерную разреженную таблицу для каждого столбца:

Следующим шагом мы можем обновить значения для подматриц, так как для всех столбцов ответы уже известны. Будем это делать по аналогичному алгоритму для 1D Sparse Table.

Таким образом мы получили двумерную разреженную таблицу за [math]O(NM\log(N)\log(M))[/math]

Ответы на запросы [ править ]

Для ответа на запрос [math] \mathrm [/math] в 1D Sparse Table использовалось пересечение отрезков [math] [l, l + 2^] [/math] и [math] [r — 2^ + 1, r] [/math] , где [math] k = \lfloor \log(SZ) \rfloor , SZ [/math] — размера массива для одномерной задачи.

Тут мы будем пользоваться аналогичным утверждением для матриц. Таким образов минимум на подматрице [math](x_1, y_1, x_2, y_2)[/math] будет высчитываться следующим образом:

ST3.png

Таким образом мы получаем ответ на запрос [math] \mathrm [/math] за [math] O(1) [/math] , если предпосчитать логарифмы двоек, например так:

Обобщение на большие размерности [ править ]

Можно заметить, что возможно реализовать и D-мерную разреженную таблицу за [math]O((N\log(n))^)[/math] памяти и [math]O((N\log(n))^)[/math] времени на построение, где ответ на запрос, например, [math] \mathrm [/math] будет выполняться за [math] O(2^) [/math] .

Способ построения: Если в данном случае, для того, чтобы построить двумерную структуру мы сначала должны были построить одномерную, то также и в случае с D-мерной структуре — сначала нужно построить (D-1)-мерную, а из нее получить D-мерную.

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

Источник

Двумерные массивы

Обработка и вывод вложенных списков

Часто в задачах приходится хранить прямоугольные таблицы с данными. Такие таблицы называются матрицами или двумерными массивами. В языке программирования Питон таблицу можно представить в виде списка строк, каждый элемент которого является в свою очередь списком, например, чисел. Например, создать числовую таблицу из двух строк и трех столбцов можно так:

Здесь первая строка списка A[0] является списком из чисел [1, 2, 3] . То есть A[0][0] == 1 , значение A[0][1] == 2 , A[0][2] == 3 , A[1][0] == 4 , A[1][1] == 5 , A[1][2] == 6 .

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

То же самое, но циклы не по индексу, а по значениям списка:

Естественно для вывода одной строки можно воспользоваться методом join :

Используем два вложенных цикла для подсчета суммы всех чисел в списке:

Или то же самое с циклом не по индексу, а по значениям строк:

Создание списка

Пусть даны два числа: количество строк n и количество столбцов m . Необходимо создать список размером n × m , заполненный нулями.

Очевидное решение оказывается неверным:

В этом легко убедиться, если присвоить элементу A[0][0] значение 1 , а потом вывести значение другого элемента A[1][0] — оно тоже будет равно 1! Дело в том, что [0] * m возвращает ccылку на список из m нулей. Но последующее повторение этого элемента создает список из n элементов, которые являются ссылкой на один и тот же список (точно так же, как выполнение операции B = A для списков не создает новый список), поэтому все строки результирующего списка на самом деле являются одной и той же строкой.

Таким образом, двумерный список нельзя создавать при помощи операции повторения одной строки. Что же делать?

Первый способ: сначала создадим список из n элементов (для начала просто из n нулей). Затем сделаем каждый элемент списка ссылкой на другой одномерный список из m элементов:

Другой (но похожий) способ: создать пустой список, потом n раз добавить в него новый элемент, являющийся списком-строкой:

Ввод списка

Пусть программа получает на вход двумерный массив, в виде n строк, каждая из которых содержит m чисел, разделенных пробелами. Как их считать? Например, так:

Или, без использования сложных вложенных вызовов функций:

Сложный пример обработки массива

Пусть дан квадратный массив из n строк и n столбцов. Необходимо элементам, находящимся на главной диагонали, проходящей из левого верхнего угла в правый нижний (то есть тем элементам A[i][j] , для которых i==j ) присвоить значение 1 , элементам, находящимся выше главной диагонали – значение 0, элементам, находящимся ниже главной диагонали – значение 2. То есть получить такой массив (пример для n==4 ):

Рассмотрим несколько способов решения этой задачи. Элементы, которые лежат выше главной диагонали – это элементы A[i][j] , для которых i , а для элементов ниже главной диагонали i>j . Таким образом, мы можем сравнивать значения i и j и по ним определять значение A[i][j] . Получаем следующий алгоритм:

Данный алгоритм плох, поскольку выполняет одну или две инструкции if для обработки каждого элемента. Если мы усложним алгоритм, то мы сможем обойтись вообще без условных инструкций.

Сначала заполним главную диагональ, для чего нам понадобится один цикл:

Затем заполним значением 0 все элементы выше главной диагонали, для чего нам понадобится в каждой из строк с номером i присвоить значение элементам A[i][j] для j = i+1 , . n-1 . Здесь нам понадобятся вложенные циклы:

Аналогично присваиваем значение 2 элементам A[i][j] для j = 0 , . i-1 :

Можно также внешние циклы объединить в один и получить еще одно, более компактное решение:

А вот такое решение использует операцию повторения списков для построения очередной строки списка. i -я строка списка состоит из i чисел 2 , затем идет одно число 1 , затем идет n-i-1 число 0 :

Упражнения

A: Максимум

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

Программа получает на вход размеры массива n и m , затем n строк по m чисел в каждой.

Ввод Вывод

B: Снежинка

Дано нечетное число n . Создайте двумерный массив из n × n элементов, заполнив его символами «.» (каждый элемент массива является строкой из одного символа). Затем заполните символами «*» среднюю строку массива, средний столбец массива, главную диагональ и побочную диагональ. В результате единицы в массиве должны образовывать изображение звездочки. Выведите полученный массив на экран, разделяя элементы массива пробелами.

C: Шахматная доска

Даны два числа n и m . Создайте двумерный массив размером n×m и заполните его символами «.» и «*» в шахматном порядке. В левом верхнем углу должна стоять точка.

Ввод Вывод

D: Диагонали параллельные главной

Дано число n . Создайте массив размером n×n и заполните его по следующему правилу. На главной диагонали должны быть записаны числа 0. На двух диагоналях, прилегающих к главной, числа 1. На следующих двух диагоналях числа 2, и т.д.

Ввод Вывод

E: Побочная диагональ

Дано число n . Создайте массив размером n×n и заполните его по следующему правилу:

Числа на диагонали, идущей из правого верхнего в левый нижний угол равны 1.

Числа, стоящие выше этой диагонали, равны 0.

Числа, стоящие ниже этой диагонали, равны 2.

Полученный массив выведите на экран. Числа в строке разделяйте одним пробелом.

Ввод Вывод

F: Поменять столбцы

Дан двумерный массив и два числа: i и j . Поменяйте в массиве столбцы с номерами i и j и выведите результат.

Программа получает на вход размеры массива n и m , затем элементы массива, затем числа i и j .

Решение оформите в виде функции SwapColumns (A, i, j) .

Ввод Вывод

G: Симметричен ли массив?

Дано число n и массив размером n×n . Проверьте, является ли этот массив симметричным относительно главной диагонали. Выведите слово “ YES ”, если массив симметричный, и слово “ NO ” в противном случае.

Решение оформите в виде функции IsSymmetric(A) .

Ввод Вывод

H: k-я диагональ

Дан квадратный двумерный массив размером n×n и число k . Выведите элементы k -й по счету диагонали ниже главной диагонали (т.е. если k == 1 , то нужно вывести элементы первой диагонали, лежащей ниже главной, если k == 2 , то второй диагонали и т.д.).

Значение k может быть отрицательным, например, если k == -1 , то нужно вывести значение первой диагонали лежащей выше главной. Если k == 0 , то нужно вывести элементы главной диагонали.

Программа получает на вход число n , затем массив размером n×n , затем число k .

Ввод Вывод

I: Транспонировать прямоугольную матрицу

Дан двумерный массив размером n×m . Симметричный ему относительно главной диагонали массив называется транспонированным к данному. Он имеет размеры m×n : строки исходного массива становятся столбцами транспонированного, столбцы исходного массива становятся строками транспонированного.

Для данного массива постройте транспонированный массив и выведите его на экран. Решение оформите в виде функции Transpose (A) .

Ввод Вывод

J: Транспонировать квадратную матрицу

Дан двумерный массив размером n×n . Транспонируйте его и результат запишите в этот же масссив. Вспомогательный массив использовать нельзя. Решение оформите в виде функции Transpose (A) .

Ввод Вывод

K: Поменять две диагонали

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

Решение оформите в виде функции SwapDiagonals (A) .

Ввод Вывод

L: Кинотеатр

В кинотеатре n рядов по m мест в каждом. В двумерном массиве хранится информация о проданных билетах, число 1 означает, что билет на данное место уже продано, число 0 означает, что место свободно. Поступил запрос на продажу k билетов на соседние места в одном ряду. Определите, можно ли выполнить такой запрос.

Программа получает на вход числа n и m. Далее идет n строк, содержащих m чисел (0 или 1), разделенных пробелами. Затем дано число k.

Программа должна вывести номер ряда, в котором есть k подряд идущих свободных мест. Если таких рядов несколько, то выведите номер наименьшего подходящего ряда. Если подходящего ряда нет, выведите число 0.

Ввод Вывод

M: Треугольник Паскаля — 1

Даны два числа n и m. Создайте массив n×m и заполните его по следующим правилам:

Числа, стоящие в строке 0 или в столбце 0 равны 1 ( A[0][j] = 1 , A[i][0] = 1 ). Для всех остальных элементов массива A[i][j] = A[i-1][j] + A[i][j-1] , то есть каждый элемент равен сумме двух элементов, стоящих слева и сверху от него.

Выведите данный массив на экран, отводя на вывод каждого элемента массива ровно 6 символов (см. пример).

Ввод Вывод

N: Треугольник Паскаля — 2

Треугольник Паскаля состоит из чисел, где каждое число равно двум числам, стоящим над ним. Если перенумеровать строки треугольника Паскаля с нуля, то \(i\)-я строка содержит \(i+1\) число, которые равны \(C_i^j\), где \(j\in[0,i]\).

По данному числу \(n\) создайте список из \(n\) строк, где \(i\)-й элемент списка должен быть списком, содержащим \(i+1\) число — элементы \(i\)-й строки треугольника Паскаля.

Заполните этот массив числами треугольника Паскаля. Выведите результат на экран отводя на вывод одного числа ровно 6 символов.

Ввод Вывод

O: Ходы коня

На шахматной доске стоит конь. Отметьте положение коня на доске и все клетки, которые бьет конь.

Программа получает на вход координаты коня на шахматной доске в шахматной нотации (то есть в виде “e4”, где сначала записывается номер столбца (буква от “a” до “h”, слева направо), затем номеру строки (цифра от 1 до 8, снизу вверх).

Клетку, где стоит конь, отметьте буквой “K”, клетки, которые бьет конь, отметьте символами “*”, остальные клетки заполните точками.

Выведите на экран изображение доски.

Ввод Вывод

P: Ходы ферзя

Решите предыдущую задачу для ферзя. Ферзь обозначается буквой “Q”.

Ввод Вывод

Q: Заполнение змейкой

По данным числам n и m заполните двумерный массив размером n×m числами от 1 до n×m “змейкой”, как показано в примере. Выведите полученный массив, отводя на вывод каждого элемента ровно 4 символа.

Ввод Вывод

R: Заполнение диагоналями

По данным числам n и m заполните двумерный массив размером n×m числами от 1 до n×m “диагоналями”, как показано в примере. Выведите полученный массив, отводя на вывод каждого элемента ровно 4 символа.

Ввод Вывод

S: Поворот прямоугольного массива

Дан прямоугольный массив размером n×m. Поверните его на 90 градусов по часовой стрелке, записав результат в новый массив размером m×n.

Выведите получившийся массив. Числа при выводе разделяйте одним пробелом.

Ввод Вывод

T: Поворот квадратного массива

Дан квадратный массив. Поверните его на 90 градусов по часовой стрелке. Результат запишите в этот же массив, вспомогательный массив использовать нельзя.

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

Ввод Вывод

U: Таблица умножения

Даны числа n и m. Создайте двумерый массив размером n×m и заполните его таблицей умножения по формуле A[i][j] = i * j . При заполнении массива нельзя использовать вложенные циклы.

Выведите получившийся массив на экран (при выводе можно использовать вложенные циклы), отводя на вывод каждого числа ровно 4 символа.

Ввод Вывод

V: Заполнение в шахматном порядке

Даны числа n и m. Заполните массив размером n×m в шахматном порядке: клетки одного цвета заполнены нулями, а другого цвета — заполнены числами натурального ряда сверху вниз, слева направо. В левом верхнем углу записано число 1.

Выведите полученный массив на экран, отводя на вывод каждого элемента ровно 4 символа.

Ввод Вывод

W: Заполнение спиралью

По данным числам n и m заполните двумерный массив размером n×m числами от 1 до n×m по спирали, выходящей из левого верхнего угла и закрученной по часовой стрелке, как показано в примере. Выведите полученный массив, отводя на вывод каждого элемента ровно 4 символа.

Тесты к этой задаче закрытые.

Ввод Вывод

X: Сапер

На поле для игры в сапер клеточки с минами обозначаются символом “*”, а в каждой пустой клеточке записано число от 0 до 8, равное количеству мин в 8 клетках, соседних с данной.

Дан список мин на поле. Постройте по данному списку изображение поля.

Программа получает на вход числа N и M — количество строк и столбцов на поле, а также количество мин на поле K. Далее идет K пар чисел — координат мин. Первое число — номер строки, второе число — номер столбца.

Выведите изображение поля на экран, клетки при выводе разделяйте одним пробелом.

Тесты к этой задаче закрытые.

Y: K-мерный список

Дано натуральное число \(k\). Сделайте \(k\)-мерный список размера 2 по каждому измерению, то есть общее число элементов в списке должно быть \(2^k\). Заполните список нулями.

Выведите результат при помощи функции print без дополнительного форматирования.

Ввод Вывод

Z: K-мерный список — 2

Дано натуральное число \(k\). Сделайте \(k\)-мерный список размера 2 по каждому измерению, то есть общее число элементов в списке должно быть \(2^k\).

Список заполните строковыми значениями по формуле: \[ A[i_1][i_2]. [i_k] = \mbox(i_1)+\mbox(i_2)+. +\mbox(i_k) \]

Например, если k == 4 , то A[0][0][1][0] == ‘0010’ .

Источник



Двумерные таблицы

date image2015-04-20
views image3554

facebook icon vkontakte icon twitter icon odnoklasniki icon

К наиболее часто используемым инструментам изучения взаимосвязи двух переменных относятся методы анализа таблицы сопряжен­ности. Анализ таблицы является весьма простым и наглядным, и вме­сте с тем эффективным инструментом изучения одновременно двух переменных. Двумерная таблица сопряженности для переменных ql2 и q2 (табл. 2.1) составлена по данным исследования «Мониторинг социальных и экономических перемен в России», которые получены из ответов на вопросы:

qlOКак бы вы оценили в настоящее время материальное поло­жение вашей семьи ?

4. Хорошее, очень хорошее.

6. Плохое, очень плохое.

7. Затрудняюсь ответить.

q12 Как бы вы оцениkb в целом политическую обстановку в России ?

1. Благополучная, спокойная.

3. Критическая, взрывоопасная.

4. Затрудняюсь ответить.

Таблица 2.1. Таблица сопряженности для переменных q10 nq12

q10 Как бы вы оценили в настоящее время материаль­ное положение вашей семьи? q12Как бы вы оценили в целом политическую обстановку в России? Все­ го
благопо­ лучная. спокойная напря­ женная критическая, взрыво­ опасная затрудняюсь ответить
Хорошее, очень хорошее
Среднее
Плохое, очень плохое И
Затрудняюсь ответить
Всего

В табл. 2.1 на пересечении строк и столбцов находятся числа, пока­зывающие, какое количество единиц анализа (в данном случае — рес­пондентов) обладают одновременно данными градациями по перемен­ным q10 и q12. Например, на пересечении первой строки и второго столбца стоит число 48 — это значит, что градацию «1» переменной q10 (считают материальное положение своей семьи хорошим или очень хорошим) и градацию «2» переменной q12 (считают политическую обстановку в России напряженной) одновременно отметили 48 человек.

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

Можно ли по данным табл. 2.1 сразу дать ответ на вопрос о наличии зависимости между переменными q10 и q12? По всей веро­ятности, нет — стоящие в клетках таблицы числа ничего особенного не демонстрируют. Поставим вопрос иначе — а что, собственно, мы ищем? По всей видимости, при наличии зависимости между пере­менными q10 и q12 при разных значениях переменной q10 поведение данных по переменной q12 будет различным. Если говорить о приме­ре табл. 2.1 — это значит, что респонденты, по-разному оцениваю­щие свое материальное положение, будут по-разному оценивать по­литическую обстановку в России.

Если бы количество респондентов, имеющих различные значе­ния переменной q10, было одинаковым, в табл. 2.1 можно было бы сравнивать между собой строки и оценить, насколько схожи значения в клетках, располагающихся в одной колонке. Однако количество рес­пондентов по строкам сильно разнится, поэтому для такого сравне­ния построим таблицу, в клетках которой располагаются не абсолют­ные количества единиц анализа, а процент от сумм по строкам. Дру­гими словами, число респондентов в каждой строке берется за 100% и от этого числа считается процент в каждой клетке таблицы. Таким образом, мы как бы нормируем каждую строку таблицы и получаем возможность сравнения распределений по строкам (табл. 2.2).

Таблица 2.2 показывает, что оценка политической ситуации в России значительно отличается по группам респондентов, по-разному оценивающих материальное положение своей семьи, и, следовательно, имеется определенная зависимость между переменными q10 и q12.

При анализе зависимостей двух переменных важнейшим является вопрос о том, какую из переменных считать зависимой, т.е. подвер­женной влиянию, а какую — независимой, т.е. влияющей. В табл. 2.1 и в последующих рассуждениях предполагалось, что оценка матери­ального положения семьи — независимая переменная, иными слова­ми.она влияет на оценку политической ситуации, которая, следова­тельно, выступает зависимой переменной. Если мы поменяем места­ ми переменные в модели и будем считать, что оценка политической ситуации оказывает влияние на оценку материального положения се­мьи, целесообразно изменить таблицу и проводить нормирование не от сумм по строкам, а от сумм по колонкам. Таблица 2.3 построена именно таким образом, т.е. использованы данные табл. 2.1, но нор­мированные по колонкам.

Таблица 2.2. Таблица сопряженности переменных q10 и q12, %

q10 Как бы вы q12 Как бы вы оценили в целом Все­
оценили политическую обстановку в России? го
в настоящее время материаль­ное положение вашей семьи? благопо­ лучная. спокойная напря­ женная критическая. взрыво­ опасная затруд­ няюсь отвеппъ i
Хорошее, очень 9,7 38,7 37,9 13,7 100,0
хорошее
Среднее 1,5 36,7 51,2 10,6 100,0
Плохое, очень 1,2 16,8 73,6 8,5 100.0
плохое
Затрудняюсь 21,4 53,6 25,0 100.0
ответить
Всего 1,8 28,7 59,4 10,1 100.0

Очевидно, что при решении вопроса о зависимости между пере­менными q10 и q12 при анализе табл. 2.3 необходимо сравнивать рас­пределения по разным колонкам таблицы, а не по строкам, как при анализе таблицы, представленной на рис. 2.2. Такое сравнение показы­вает, что среди респондентов, оценивающих политическую ситуацию в России как критическую, материальное положение своей семьи оце­нивают как плохое 49,1% респондентов (колонка 3, строка 3 табл. 2.3). В то же время среди оценивающих политическую ситуацию опти­мистичнее, как напряженную, материальное положение своей семьи считают плохим 23,1% респондентов (колонка 3, строка 2 табл. 2.3).

Таблица 2.3. Таблица сопряженности переменных q10 n q12, %

q10 Как бы вы оценили q12 Как бы вы оценили в целом политическую обстановку в России? Все­ го
в настоящее время материаль­ное положение вашей семьи? благопо­ лучная. спокойная напря­ женная критическая, взрыво­ опасная затруд­ няюсь ответить
Хорошее, очень хорошее 27,9 6,9 3,3 7,0 5,2
Среднее 46,5 69,1 46,6 56,8 54,1
Плохое, очень плохое 25,6 23,1 49,1 33,3 39,6
Затрудняюсь ответить 0,9 1,0 2,9 1,2
Всего 100,0 100,0 100,0 100,0 100.0

Рис. 2.2. Меню команды Crosstabsпакета SPSS

При анализе таблиц сопряженности крайне важно помнить, что мы, по сути дела, ищем наличие (или отсутствие) определенных ста­тистических, а не причинно-следственных зависимостей. Вопрос о том, какая из переменных является причиной, т.е. оказывает влияние, а какая меняется вследствие этой причины, не может быть решен не только с помощью анализа таблиц, но и любым другим формально- статистическим методом. Это вопрос понимания той модели, кото­рую мы проверяем методами построения таблиц либо другими стати­стическими приемами. Но результатом такой проверки не может быть утверждение: «наша модель верна», либо «наша модель неверна». Утверждать мы можем лишь то, что данные не противоречат (или, наоборот, противоречат) построенной модели, что само по себе от­нюдь не является гарантией ее справедливости.

Иллюстрацию этой мысли можно найти у О. Генри. В рассказе «Вождь краснокожих» главный герой предложит изящную модель для ответа на вопрос о том, почему дует ветер — потому, что деревья качаются. Если собрать данные о ветре и поведении деревьев во вре­мя ветра, любой статистический метод покажет, что данные ни в коем случае не противоречат этой модели, что.видимо, и послужило Джи­му основанием для столь глубокомысленного вывода.

Ряд распределения – упорядоченное распределение единиц совокупности оп определенному варьирующему признаку; это простая группировка, вкот известна численность едениц в группировках или удельный вес каждой группы в общем итоге. Ряды распр имеют 2 осн признака: 1. значение груп.признака (вариант Х), 2. частота- f или частость –w. Частота- f- численность отдельных вариантов, т.е.число, показывающее какое число раз (как часто встречается те или иные варианты. сумм f=N (N общий объем выборки). Частость— относи­тельнымичастотами.–w-частота выраженная в % к итогу. W= f/ сумм f. Т.е. Относительные частоты – отношение частоты к объему выборки. Для создания частотной табл в SPSS: Выберите в меню команды Analyze (Анализ) Descriptive Statistics (Дескриптивные статистики) Frequencies (Частоты) Появится диалоговое окно Frequencies.

Читайте также:  Со2 элемент таблицы менделеева

Пр.: Задано распределение частот выборки объема = 20:

Написать распределение относительных частот.

Решение.Найдем относительные частоты, для чего разделим частоты на объем выборки:

=3/20 = 0,15, W2= 10/20 = 0,50, W3 = 7/20 = 0,35.

Напишем распределение относительных частот:

Проверка: 0,15+0,50+ 0,35= 1.

В SPSS:Тест хи-квадрат (X 2 )

При проведении теста хи-квадрат проверяется взаимная независимость двух переменных таблицы сопряженности и благодаря этому косвенно выясняется зависимость обоих переменных. Две переменные считаются взаимно независимыми, если наблюдаемые частоты (f) в ячейках совпадают с ожидаемыми частотами (fe).

Для того, чтобы провести тест хи-квадрат с помощью SPSS, выполните следующие действия:

· Выберите в меню команды Analyze (Анализ) Descriptive Statistics (Дескриптивные статистики) Crosstabs. (Таблицы сопряженности)

· Кнопкой Reset (Сброс) удалите возможные настройки.

· Перенесите переменную sex в список строк, а переменную psyche — в список столбцов.

· Щелкните на кнопке Cells. (Ячейки). В диалоговом окне установите, кроме предлагаемого по умолчанию флажка Observed, еще флажки Expected и Standardized. Подтвердите выбор кнопкой Continue.

· Щелкните на кнопке Statistics. (Статистика).

Откроется описанное выше диалоговое окно Crosstabs: Statistics.

· Установите флажок Chi-square (Хи-квадрат). Щелкните на кнопке Continue, а в главном диалоговом окне — на ОК.

Вы получите следующую таблицу сопряженности.

Пол * Психическое состояние Таблица сопряженности

Психическое состояние Total
Крайне неустой-чивое Неустой-чивое Устой-чивое Очень устойчивое
Пол женский Count
Expected Count 7,9 16,6 17,0 2,5 44,0
Std. Residual 2,9 ,3 -1,9 -.9
Мужской Count
Expected Count 11,1 23,4 24,0 3,5 62,0
Std. Residual -2,4 -,3 1,6 ,8
Total Count
Expected Count 19,0 40,0 41,0 6,0 106,0

Кроме того, в окне просмотра будут показаны результаты теста хи-квадрат:

Chi-Square Tests (Тестыхи-квадрат)

Value (Значение) df Asymp. Sig. (2-sided) (Асимптотическая значимость (двусторонняя))
Pearson Chi-Square (Хи-квадрат по Пирсону) 22,455 (а) ,000
Likelihood Ratio (Отношение правдоподобия) 23,688 ,000
Linear-by-Linear Association (Зависимостьлинейный-линейный) 20,391 ,000
N of Valid Cases (Кол-во допустимых случаев)

а. 2 cells (25,0%) have expected count less than 5. The minimum expected count is 2,49 (2 ячейки (25%) имеютожидаемуючастотуменее 5. Минимальная ожидаемая частота 2,49.)

Для вычисления критерия хи-квадрат применяются три различных подхода: формула Пирсона, поправка на правдоподобие и тест Мантеля-Хэнзеля. Если таблица сопряженности имеет четыре поля и ожидаемая вероятность менее 5, дополнительно выполняется точный тест Фишера.

Источник

Создание двумерной таблицы данных

Анализ содержимого в одномерной таблице данных, как Вы увидели, показывают, что при закупке 5 акций фирма «Маква» не получит через 10 месяцев (300 дней) необходимую сумму. В связи с этим необходимо определить, какое количество акций необходимо купить, чтобы получить 800 тыс. долл. при их возврате эмитенту спустя 10 месяцев. Для этого необходимо построить двумерную таблицу данных, в которой определяется возвратная стоимость акций в зависимости от изменения значений двух аргументов: срока возврата и количества закупленных акций.

На рис. 9 представлена двумерная таблица данных. В ячейке, в которой записано слово «Формула», необходимо ввести формулу, устанавливающую зависимость одной функции от двух аргументов. В данном случае, это та же формула, которая применялась в одномерной таблице данных: формула расчета возвратной стоимости акций. Отличие формулы для одномерной таблицы состояло в том, в ней фиксировалось значение количества закупленных акций.

6.1.Создание шаблона двумерной таблицы данных.

Образец шаблона представлен на рис. 9. Последовательность значений срока возврата должна быть расположена в ячейках столбца под ячейкой со словом «Формула». Последовательность значений количества закупленных акций должна быть расположена в ячейках строки правее ячейки со словом «Формула». Формирование последовательности значений количества акций и срока возврата необходимо будет реализовать с помощью способа, который использовался при подготовке одномерной таблицы данных.

6.1.1.Создать шаблон таблицы, представленный на рис. 9. В ячейку со словом «Формула» копировать формулу «Возвратная стоимость акций» из соответствующей ячейки Таблицы 5.

6.1.2.Выберите самостоятельно первый элемент и разность для каждой арифметической прогрессии с учетом того, что размерность таблицы задана на рисунке. Разность арифметической прогрессии для количества закупленных акций не должна превышать числа 7.При этом примите во внимание, что существует одномерная таблица данных, и имеется возможность проверить правильность задания всех условий для Мастера подстановок и правильность полученных Мастером подстановок результатов. При этом примите также во внимание и то обстоятельство, что процесс решения задачи – итеративный, т.е. Вы можете не получить ответ после того, как Вы выбрали максимальные элементы последовательностей в первый раз.

6.1.3.Ниже двумерной таблицы данныхписьменно сформулируйте ответ на вопрос:

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

6.2.Формировать содержимое в двумерной таблицеданных (выдать указание Мастеру подстановок).

Формировать двумерную таблицу данных: Выделить поле таблицы► В строке меню кликнуть на пункте «Данные»► В разделе Ленты «Работа с данными» кликнуть на пункте «Анализ «что если»► ► Проявить КВ в поле «Подставлять значения по столбцам» ► В этом поле установить адрес ячейки из Таблицы 5, в которой находится значение количества закупленных акций► Проявить КВ в поле «Подставлять значения по строкам» ► В этом поле установить адрес ячейки из Таблицы 5, в которой находится значение срока возврата► Ок► .
Двумерная таблица подстановки
Возвратная стоимость акций: зависимость от количества акций и срока возврата
Таблица 7
Количество закупленных акций
Формула
С
р
о
к
в
о
з
в
р
а
т
а

6.3.Сравните полученные результаты с результатами в одномерной таблице данных. Равные результаты для количества закупленных акций – 5 свидетельствуют, что Вы правильно выполнили всю подготовительную работу до вызова Мастера подстановок. В противном случае проведите необходимые изменения.

6.4.Подбор значения арифметической прогрессии для последовательности значений количества закупленных акций.

Если при выбранной Вами разности арифметической прогрессии для значений количества закупленных акций в двумерной таблице данных не получен ответ на вопрос: сколько акций необходимо закупить, чтобы через 10 месяцев (300 дней) их возвратная стоимость превысила бы сумму 800 тысяч рублей, необходимо провести перерасчет. Перерасчет проводится без изменения начального значения количества закупленных акций (5) путем изменения значения разности арифметической прогрессии для последовательности «количество закупленных акций».

6.5.В двумерной таблице данных получить новые значения результатов с новыми значениями в последовательности (количество закупленных акций) путем изменения разности арифметической последовательности.

В двумерной таблице данных с имеющимися результатами получить новые результаты для новых исходных значений данных, расположенных в строке или в столбце, путем изменения разности арифметической последовательности:Изменить в соответствующей ячейке второе значение последовательности► Сформировать новые значения арифметической последовательности► .

6.6.Проведите несколько перерасчетов с различным значением арифметической последовательности для ряда значений количества закупленных акций с целью получить в качестве результата точное значение необходимой суммы – 800 тысяч долларов.При выполнении этого пункта задания можно увидеть, что при заданном начальном условии задача не имеет точного решения.Под ответом на предыдущий вопрос сформулируйте ответ на следующий вопрос:

b)При каких значениях срока возврата и количества закупленных акций Вы получили значение возвратной суммы (меньшее или большее), наиболее близкое к требуемому по абсолютной величине)? Какое значение возвратной суммы получено?

Подбор значения параметра

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

В составе Excel имеются специальные программы, расширяющие возможности Excel. Эти программы называются надстройками. Для решения рассматриваемой задачи имеетсянадстройка, называемая «Подбор параметра».

Источник