Перейти к содержимому


[Решено] Шкалы со сложным алгоритмом


Сообщений в теме: 8

#1 SDR

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений

Отправлено 06 Ноябрь 2013 - 17:21

Здравствуйте!

*Лирическое вступление*

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

Перехожу непосредственно к проблеме.

Методика оценивает поведенческие установки человека. Испытуемый отвечает на 16 вопросов, каждый из которых - некая жизненная ситуация, в которую он попадает. В каждом из 16 вопросов имеется 4 варианта ответов - действий в данной ситуации. Задача испытуемого - один из 4 вариантов ответа (одно из действий) выбрать как предпочтительное (ответить "Да"), а другой вариант (из оставшихся 3) выбрать как отвергаемый (ответить "Нет"). Частично это решается дублированием вопросов с заменой задания (сперва просим испытуемого выбрать наиболее предпочтительный вариант, затем - наименее предпочтительный), но вариант ответа, выбранный как "Да", затем можно выбрать и как "Нет", что может разрушить алгоритм обработки.

Но настоящая проблема кроется в ином: методика имеет 4 шкалы, соответственно, каждый вариант ответа в каждом вопросе соответствует той или иной шкале. Подсчет баллов в шкале производится на основе выбора того или иного варианта ответа. Допустим, Вопрос 4 -> Ответ 2 -> балл начисляется в Шкалу 3; если в том же вопросе мы выбираем Ответ 3, то балл начисляется другой шкале. Очевидно, что для подобной обработки нужны условия отбора вопросов и вариантов ответа. В Excel это реализовано через функцию СЧЁТЕСЛИ(), где в скобках мы задаем нужную ячейку и значение для отбора, например, идентификатор варианта ответа (допустим, "a", "b", "c", "d"). Задать индивидуальные идентификаторы вариантов ответа в Indigo, как я понимаю, не представляется возможным. Можно попробовать использовать функцию "за каждый вариант ответа свой балл", и эти баллы взять как индивидуальные идентификаторы. У нас есть 1, 2, 3 и 4. Теперь наша задача прописать в шкале учет вопроса только при определенном значении. Насколько я понимаю, в системе Indigo это делается следующим образом:

(Балл(группа_вопросов->вопрос 1)=1)+(Балл(группа_вопросов->вопрос 4)=1)

Если моя логика верна, то таким образом в шкалу будут отбираться вопросы 1 и 4 только при ответе 1.

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

(Балл(группа_вопросов->вопрос 1)=2)+(Балл(группа_вопросов->вопрос 4)=2)/2

Получается, что мы возвращаем количество ответов, т.е. подсчет ведется так, будто учтенное значение = 1.

Увы, но проделанные манипуляции, почему-то, не работают. При завершении тестирования открывается пустой белый экран "Результаты", а на сервере все тестирования все еще продолжают быть активными. Прикладываю изображения ниже.

Прикрепленное изображение: indigo_base.JPG Прикрепленное изображение: indigo_base_2.JPG Прикрепленное изображение: indigo_base_3.JPG

#2 Administrator

    Менеджер проекта

  • Администраторы
  • 1 084 сообщений

Отправлено 06 Ноябрь 2013 - 22:19

Здравствуйте!

Вы почти все сделали верно :) Это очень радует, что есть пользователи, которые самостоятельно способны решать (ну или почти решать) подобные задачи. Вы правильно догадались ввести идентификаторы 1, 2, 3, 4, но ошиблись в техническом нюансе. Вы использовали знак равенства =, а надо было использовать знак двойного равенства ==. Это что-то вроде стандарта, который встречается во многих языках программирования (C/C++/C#/PHP и д.р.). Знак равенства = в будущем предполагается использовать для других целей. Все нюансы изложены в документации https://indigotech.ru/manual раздел 2.2.2 Вычисление результатов, подраздел "Условный оператор". Хоть Вы и не использовали непосредственно сам условный оператор "условие ? если-истина : если-ложь", но использовали сами условия. Вот возможные условия:

== – равно;
< – меньше;
> – больше;
<= – меньше либо равно;
>= – больше либо равно;
!= или <> – не равно;
and – логическое И;
or – логическое ИЛИ.

Например:

2>1 ? 7 : 8, вернет 7.
10<5 ? 1 : 0, вернет 0.
(4<>3 and 5>=3) ? (4+6) : (1+2), вернет 10.
Условные операторы могут вкладываться друг в друга:
1+2==3 ? (2<1 ? 10 : (2+2==4 ? 11 : 12)) : 13, вернет 11.

Каждое из условий возвращает булев результат Истина или Ложь (1 или 0). Если булев результат будет участвовать в арифметических операциях, то он автоматически будет конвертирован в числа 1 или 0. У Вас самый простой случай условного оператора, запись вида (Балл(Вопрос 1) == 1 ? 1 : 0) эквивалентна (Балл(Вопрос 1) == 1). Таким образом, условия можно складывать, как Вы это и сделали. При этом не нужно производить деление, здесь Вы ошиблись. Складываться будут не идентификаторы, а 1 и 0, поэтому делить не нужно.

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

Шкала 1: (Балл(Вопрос 1) == 1) + (Балл(Вопрос 2) == 1) + (Балл(Вопрос 3) == 1) + ... + (Балл(Вопрос N) == 1)
Шкала 2: (Балл(Вопрос 1) == 2) + (Балл(Вопрос 2) == 2) + (Балл(Вопрос 3) == 2) + ... + (Балл(Вопрос N) == 2)
Шкала 3: (Балл(Вопрос 1) == 3) + (Балл(Вопрос 2) == 3) + (Балл(Вопрос 3) == 3) + ... + (Балл(Вопрос N) == 3)
Шкала 4: (Балл(Вопрос 1) == 4) + (Балл(Вопрос 2) == 4) + (Балл(Вопрос 3) == 4) + ... + (Балл(Вопрос N) == 4)

Действительно, система была заточена для контроля знаний, но очень многие психологические тесты можно автоматизировать, если знать как ухитриться. Мы не стали вводить отдельный тип теста "Психологический", т.к. он по логике ничем не отличался бы от "Контроля знаний", был бы тот же самый механизм шкал, который в будущем будет улучшен, возможно, подобные действия можно будет выполнять в более короткой записи.

#3 SDR

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений

Отправлено 08 Ноябрь 2013 - 13:41

Благодарю за оперативный ответ :) Эх, значит я, все-таки, был близок к успеху - чисто технический момент. Опирался на информацию, найденную на этом форуме, с двойным знаком равенства ошибся - никогда не сталкивался с таким оператором, не программист :) Что касается условий, то предполагал, что без наличия выражения "? x : y" условие "х=y" или "х>y" не будет считаться оператором "истина-ложь". Сначала раздумывал прописать везде данное выражение, но посчитал это слишком громоздким, а вариант с делением выглядит куда симпатичнее. Вам стоит прописать в документации несколько моментов, в частности:

1) Использование условий (например, "==" или ">=") без выражения "? x : y" также формирует оператор "истина-ложь", т.е. результат выражения принимают значение 1/0, вне зависимости от стоимости ответа по конкретному вопросу;
2) При наличии вопросов, которые относятся сразу к нескольким шкалам, подсчет ведется при помощи разных баллов за ответы и последующем условии "==";
3) Формат записи с операциями: должны ли между условиями и значениями быть пробелы, или они пишутся слитно ("1+1" или "1 + 1"), или же это вообще не имеет значения (в разных темах на форуме вы предлагали разные варианты).

Еще один момент - как я уже сказал, из-за тестирования неправильно созданного теста в результатах висит несколько незавершенных копий со статусом "тестирование", которые не представляется возможным правильно пройти или же удалить. Как с ними можно поступить? Видел, что вы советовали поставить обновление клиента, либо же, я так понимаю, поможет удаление и повторная установка?

UPD:

Появился новый вопрос. Возможно ли создание дополнительной шкалы, в условии которой мы будем опираться на результаты остальных шкал? Т.е. в качестве условий мы берем не (Балл(Вопрос 1) == 1), а (Балл)(Шкала 1)==1) и т.д.?

Сообщение отредактировал SDR: 08 Ноябрь 2013 - 14:00


#4 Administrator

    Менеджер проекта

  • Администраторы
  • 1 084 сообщений

Отправлено 08 Ноябрь 2013 - 20:35

Просмотр сообщенияSDR (08 Ноябрь 2013 - 13:41) писал:

1) Использование условий (например, "==" или ">=") без выражения "? x : y" также формирует оператор "истина-ложь", т.е. результат выражения принимают значение 1/0, вне зависимости от стоимости ответа по конкретному вопросу;
2) При наличии вопросов, которые относятся сразу к нескольким шкалам, подсчет ведется при помощи разных баллов за ответы и последующем условии "==";

- Согласен, требуется разъяснение и пример.

Просмотр сообщенияSDR (08 Ноябрь 2013 - 13:41) писал:

3) Формат записи с операциями: должны ли между условиями и значениями быть пробелы, или они пишутся слитно ("1+1" или "1 + 1"), или же это вообще не имеет значения (в разных темах на форуме вы предлагали разные варианты).

- Тоже введем уточнение. Сразу отвечу, что пробелы и переносы строк ни на что не влияют.

Просмотр сообщенияSDR (08 Ноябрь 2013 - 13:41) писал:

Еще один момент - как я уже сказал, из-за тестирования неправильно созданного теста в результатах висит несколько незавершенных копий со статусом "тестирование", которые не представляется возможным правильно пройти или же удалить. Как с ними можно поступить? Видел, что вы советовали поставить обновление клиента, либо же, я так понимаю, поможет удаление и повторная установка?

- Скачайте и запустите следующую программу https://indigotech.ru...e=untesting.exe. Она сбросит статусы Тестирования в Прервано.

Просмотр сообщенияSDR (08 Ноябрь 2013 - 13:41) писал:

Появился новый вопрос. Возможно ли создание дополнительной шкалы, в условии которой мы будем опираться на результаты остальных шкал? Т.е. в качестве условий мы берем не (Балл(Вопрос 1) == 1), а (Балл)(Шкала 1)==1) и т.д.?

- Сейчас, к сожалению, нет. Но эта функция уже имеется в плане на реализацию.

#5 Anry

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 171 сообщений
  • ГородАрхангельск

Отправлено 12 Ноябрь 2013 - 09:37

Подобная тема поднималась https://indigotech.r...81%D0%BE%D0%B2/

Просмотр сообщенияSDR (08 Ноябрь 2013 - 13:41) писал:

UPD:

Появился новый вопрос. Возможно ли создание дополнительной шкалы, в условии которой мы будем опираться на результаты остальных шкал? Т.е. в качестве условий мы берем не (Балл(Вопрос 1) == 1), а (Балл)(Шкала 1)==1) и т.д.?

вот это я поддерживаю!

#6 Administrator

    Менеджер проекта

  • Администраторы
  • 1 084 сообщений

Отправлено 12 Ноябрь 2013 - 12:09

Просмотр сообщенияAnry (12 Ноябрь 2013 - 09:37) писал:

вот это я поддерживаю!

- Да, функция весьма полезная тем, у кого в шкалах огромная куча подстановок баллов, чтобы не дублировать их. У функции скорее всего будет правило на порядок их расчета, например, в соответствии с порядком в списке шкал.

#7 Гость_Гость_*

  • Гости

Отправлено 04 Август 2014 - 02:12

Доброе утро, коллеги!
Посмотрел, понравилось. Но есть замечания.
1. Хочется в демонстрационном режиме увидеть работу в группе.
2. Интерфейс радует, Однако кнопки там можно было бы прокомментировать подробнее. Встретив неясность, приходится смотреть инструкции, а это затягивает время. Места ведь там хватает.
3. Проводится ли системой оценивание самого материала теста? Ведь на этот счет существует довольно большая теория и вполне конкретные требования. Или проблемы качества тестовых материалов отдаются на откуп автору?
4. Появились и вопросы по поводу вычисления итоговой оценки. Как бы узнать поподробнее?

С уважением,
Морев Игорь Авенирович
Дальневосточный федеральный университет
morev.ia@dvfu.ru

#8 Administrator

    Менеджер проекта

  • Администраторы
  • 1 084 сообщений

Отправлено 04 Август 2014 - 13:31

Здравствуйте, Игорь Авенирович!

Цитата

1. Хочется в демонстрационном режиме увидеть работу в группе.

- Не совсем ясно о чем именно идет речь. В ознакомительной версии есть только одно ограничение в одно подключение, т.е. можно одновременно тестировать только одного человека. Больше никаких ограничений нет. Что именно Вы имели в виду?

Цитата

2. Интерфейс радует, Однако кнопки там можно было бы прокомментировать подробнее. Встретив неясность, приходится смотреть инструкции, а это затягивает время. Места ведь там хватает.

- Как именно прокомментировать? В интерфейсе пользователя вроде все достаточно просто. Из кнопок там Завершить, Назад, Далее - вроде все и так понятно. Никаких особых жалоб на сложности интерфейса никогда не поступало, наоборот пользователи хвалят простоту интерфейса (отзывы https://indigotech.ru/reviews). Вот, например, Центр мониторинга в образовании провел опрос-исследование среди 70 преподавателей насчет INDIGO:

Изображение

Вот исходный файл с подписью министра образования Астраханской области:
https://indigotech.ru...php?file=AO.ppt

Цитата

3. Проводится ли системой оценивание самого материала теста? Ведь на этот счет существует довольно большая теория и вполне конкретные требования. Или проблемы качества тестовых материалов отдаются на откуп автору?

- Это очень сложно, тесты бывают всякие разные для разных задач и целей. Это задача автора. Программа не искусственный интеллект и анализ качества тестов провести не может. Если анализ качества теста должен производиться на основе статистических данных по результатам тестирования, то можно сгенерировать статистику по тесту и выгрузить её в Excel для дальнейшего анализа.

Цитата

4. Появились и вопросы по поводу вычисления итоговой оценки. Как бы узнать поподробнее?

- Там можно задавать шкалы и для каждой шкалы указывать формулу расчета баллов и деления шкалы (градацию оценок). Подробнее тут: https://indigotech.ru/manual "2.2.2. Вычисление результатов".

#9 Гость_Гость_*

  • Гости

Отправлено 05 Август 2014 - 02:22

Спасибо!




Ответить



  


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных