Вам нужно авторизоваться. Забыли пароль? Регистрация Сентябрь пн. 06 2010 г. в 4:55
Навигация
Сервисы
Реклама


Поиск
Рассылка



Отписаться
Статистика
Статьи

Анализ полово-возрастного состава выборки используя Python

Автор: Лебедев Василий Борисович
Добавлено: 2007-11-26 07:49:54

Анализ полово-возрастного состава выборки используя Python



В своей работе я использую архив PhysioNet. Я скачал обучающую базу суточных записей RR-интервалов. И первое, что я решил, выяснить полово-возрастной состав выборки.

Предварительно я создал описание класса CRRData (см. файл cfile.py). Класс содержит следующие свойства и методы:

  • fFileName – имя файла без расширения
  • HighAge – верхний предел возрастной группы
  • LowAge – нижний предел возрастной группы
  • Gender – пол ('M', 'F')
  • Medication – медикамент
  • StartTime – время начала записи (в формате Python)
  • RRLow – наименьшее значение RR-интервала
  • RRHigh – наибольшее значение RR-интервала
  • __init__ - конструктор класса, в него передается имя файла без расширения
  • ReadHead – метод чтения данных из файла-заголовка

Также я воспользуюсь собственным модулем mfutils.py для построения списка файлов.
Оба модуля надо скачать и положить в одну папку (пусть это будет d:python), также надо скачать данные с сайта PhysioNet и распаковать их (предположим, что Вы распаковали их в папку d:/studybase)

Теперь приступим:

  • запускаем python
  • сначала добавим путь d:python в список доступных путей с помощью модуля sys и импортируем наши модули:


    import sys
    sys.path.append('d/:python')
    import mfutils
    import cfile


  • сканируем папку с данными и создаем список файлов (заметьте в процедуре BuildFileList я использовал маску 'a.hea', это нужно для того чтобы в наш список попали только файлы заголовки записей проводимых без медикаментозного воздействия):
    fList = []
    mfutils.BuildFileList('D:studybase','a.hea', fList)
  • теперь создадим кортедж для хранения данных о возрасте и поле:
    cData =[]
  • для того чтобы добавлять данные в кортедж создадим процедуру add, в которую будем передавать возрастные рамки и пол из текущего файла заголовка:


    def add(corData, lA, hA, gen):
        bFind = 0
        i = 0
        for x in corData:
            if ((x[0]==lA) and (x[1]==hA)):             bFind = 1             a = int(x[2])
                b = int(x[3])
                if (gen=='M'):
                    a = a + 1
                else:
                    b = b + 1
                corData[i] = (lA, hA, a, b)
            i = i + 1
        if (bFind == 0):
            if (gen=='M'):
                corData.append((lA,hA,1,0))
            else:
                corData.append((lA,hA,0,1))


  • наконец, пробежимся по списку:

            for d in fList:
                d = d.replace('.hea', '')
                frr = cfile.CRRData(d)
                add(cData, frr.LowAge, frr.HighAge, frr.Gender)


  • теперь осталось лишь вывести полученный результат в виде таблицы:

    slTable = []
            for x in cData:
                slTable.append(str(x[0]) + '-' + str(x[1]) + ' ' + str(x[2]).rjust(6) + ' ' + str(x[3]).rjust(7))
            slTable.sort()
            print ' age male female'
            for x in slTable:
                print x


    Вот что получилось:


    age male female
    20-24 1 0
    30-34 2 0
    35-39 11 2
    40-44 25 4
    45-49 55 7
    50-54 73 8
    55-59 106 22
    60-64 122 34
    65-69 113 31
    70-74 78 19
    75-79 40 9



Теперь, данные можно скопировать в офисное приложение (MicroSoft Excel, OpenOffice Calc и т.д.) и построить графики, или вставить в отчет.

Файлы с с примером можно найти в разделе Download по ссылке : http://www.ibmt.ru/index.php?nma=downloads&fla=index&cat=2&action=id&ids=2&idd=2

Оглавление   |  На верх


 
 
Тема страницы:

Архивы данных Анализ полово-возрастного состава выборки используя Python Информационные БиоМедицинские Технологии Статьи 2010-09-06 04_55_50

Статьи
Архивы данных
Вход
Логин:

Пароль:


Запомнить меня
Вам нужно авторизоваться.
Забыли пароль?
Регистрация
Реклама от Google

На сайте
Гостей: 11
Пользователей: 0



купить мобильный телефон через интернет рейтинг отзыв. | воронцовский парк
Работает под управлением WebCodePortalSystem v. 5.2
Copyright WebCode-Command © 2003-2007

Страница сгенерирована за 2.157 сек..