![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 49 Регистрация: 7.04.2010 Пользователь №: 15366 ![]() |
Добрый день! Прошу помощи в анализе данных. Мы имеем 100 человека больных с метастазами в печени, лечили их хирургическим путем и наблюдали их в течение 6 лет и диагностировали у них новые метастазы и рецидивы. Суть работы заключается в том, чтобы доказать, что реже всего на 1 и 2 годах наблюдения новые МТС возникают у пациентов с количеством МТС 2-3 (у нас были варианты количества от 2-6), и размер их должен быть 2-3 см. То есть кривая частоты прогресии имеет форму колокола обращенного вершиной вниз - 1 см - часто возникает прогрессия, больше 3 - тоже. Наиболее оптимальным является размер очага для хирургического лечения 2-3 см. Вопрос как представить эти данные и их анализировать: средний и суммарный размер не учитывают разницы: то ли у больного было 3 очага по 2 см то ли 1 и 6 см что совсем не благоприятно. Если брать каждый метастаз как отдельную переменную то у разных людей будет разное количество переменных (от 2 до 6штук), но этот вариант наиболее приемлем в соответствии с поставленной задачей. Теперь вопрос каким методом воспользоваться, чтобы доказать что идеальным для лечения является количество МТС 2-3 при размере 2-3см. Еще момент : размер МТС имеет мини манимальное округление до 0, 5 разброс от 1 до 6 см (т.е. всего 12 значений). Может быть их можно как-то объединить и логически видоизменить? Я уже просто голову сломала. Очень нужен свежий взгляд. Спасибо
|
|
![]() |
![]() |
![]() |
![]()
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 49 Регистрация: 7.04.2010 Пользователь №: 15366 ![]() |
приложенные данные
Прикрепленные файлы
|
|
![]() |
![]() |
![]()
Сообщение
#3
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
приложенные данные часть 1 ![]() сохраняем файл экселя как csv выбирая разделителем полей ";" ввиду печальной особенности русского экселя представлять десятичную точку как "," директория в которую мы сохранили файл с данными будет нашей рабочей директорией (в линуксе достаточно стоя в ней запустить R в виндовсе возможно надо её отметить из меню оболочки), или надо указать полный путь к имени файла. после это импортируем в эксель файл функцией read.csv2() и сразу смотрим все ли пошло нормально с помощью функции str() Код > str(read.csv2("кол-во-размер-рецидив.csv")) 'data.frame': 93 obs. of 13 variables: $ номер : int 43 91 3 4 10 34 35 39 42 93 ... $ кол.во : int 5 5 3 2 2 4 5 6 6 6 ... $ средний.размер : num 1.6 1.4 2.33 3 3 2.25 2 1.17 1.5 1.25 ... $ мтс1 : num 1 0.5 1 1 1 1 0.5 1 1 0.5 ... $ мтс2 : num 1 0.5 1 5 5 1 1 1 1 1 ... $ мтс3 : num 1 1 5 0 0 2 1.5 1 1 1 ... $ мтс4 : num 1 1 0 0 0 5 2 1 2 1 ... $ мтс5 : num 4 4 0 0 0 0 5 1.5 2 4 ... $ мтс6 : num 0 0 0 0 0 0 0 1.5 2 0 ... $ суммарный.размер: num 8 7 7 6 6 9 10 7 9 7.5 ... $ рецидив : int 1 1 1 1 1 1 1 1 1 1 ... $ срок : int 1 1 1 3 3 3 3 3 3 3 ... $ рецидив.до.года : int 1 1 1 1 1 1 1 1 1 1 ... > как видим всё в порядке и мы можем смело сохранять данные для последующей обработки Код > data <- read.csv2("кол-во-размер-рецидив.csv") > ЗЫ ну а посмотреть на первые несколько строчек что у нас в data можно с помощью функции head() Код > head(data)
номер кол.во средний.размер мтс1 мтс2 мтс3 мтс4 мтс5 мтс6 суммарный.размер 1 43 5 1.60 1.0 1.0 1 1 4 0 8 2 91 5 1.40 0.5 0.5 1 1 4 0 7 3 3 3 2.33 1.0 1.0 5 0 0 0 7 4 4 2 3.00 1.0 5.0 0 0 0 0 6 5 10 2 3.00 1.0 5.0 0 0 0 0 6 6 34 4 2.25 1.0 1.0 2 5 0 0 9 рецидив срок рецидив.до.года 1 1 1 1 2 1 1 1 3 1 1 1 4 1 3 1 5 1 3 1 6 1 3 1 Сообщение отредактировал p2004r - 13.11.2011 - 12:24 ![]() |
|
![]() |
![]() |
![]()
Сообщение
#4
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
часть 2 Выбираем интервал группировки
Нас интересует как распределены размеры "мтс" Код > names(data) [1] "номер" "кол.во" "средний.размер" "мтс1" [5] "мтс2" "мтс3" "мтс4" "мтс5" [9] "мтс6" "суммарный.размер" "рецидив" "срок" [13] "рецидив.до.года" это переменные с 4 по 9, у них отсутствующие значения закодированы нолем (а надо NA) выкусываем часть таблицы данных, заменяем 0 на NA: Код > # прицеливаемся :) > head(data[,4:9]) мтс1 мтс2 мтс3 мтс4 мтс5 мтс6 1 1.0 1.0 1 1 4 0 2 0.5 0.5 1 1 4 0 3 1.0 1.0 5 0 0 0 4 1.0 5.0 0 0 0 0 5 1.0 5.0 0 0 0 0 6 1.0 1.0 2 5 0 0 > mts<-as.vector(data[,4:9]) > # заменяем 0 на NA > mts[mts==0]<-NA и склеиваем в одну переменную: 1й способ Код c(mts[,1],mts[,2],mts[,3],mts[,4],mts[,5],mts[,6]) 2й способ Код mts.new<-as.matrix(mts) dim(mts.new)<-6*93 mts.new<-as.vector(mts.new) Очистка от NA производится функцией na.omit() Строим плотность распределения размера мтс Код > plot(density(na.omit(mts.new))) > Ну и голую гистограмму для сравнения Код > hist(na.omit(mts.new)) > Теперь для способа с гистограммой надо выбрать интервалы группировки ![]() |
|
![]() |
![]() |
![]() ![]() |