?

Log in

No account? Create an account
R

Язык и среда R

Статистическое программное обеспечение

рисунок для регрессии
vladhr_1989
Здравствуйте! У меня случилась маленькая проблемка с визуализацией к регрессии Пуассона.

Модель:
M3 <- glm(Macross ~ location+Sex, data = a, family = "quasipoisson")

Anova(M3)
Analysis of Deviance Table (Type II tests)

Response: Macross
LR Chisq Df Pr(>Chisq)
location 28.165 4 1.155e-05 ***
Sex 15.291 1 9.216e-05 ***

Мне удаётся построить только рисунок одновременно для факторов "Локализация" и "Пол" с помощью кода:

NEWDATA <- with(a, expand.grid(location=unique(location), Sex=unique(Sex)))
pred <- predict(M3,newdata= NEWDATA,se.fit=TRUE, type = "link")
make_ci <- function(pred, data){
fit <- pred$fit
lower <- fit - 1.96*pred$se.fit
upper <- fit + 1.96*pred$se.fit
return(data.frame(exp(fit), exp(lower), exp(upper), data))
}

my_pred <- make_ci(pred, NEWDATA)
limits <- aes(x = factor(location), ymax = my_pred$exp.upper., ymin = my_pred$exp.lower., group = Sex)

ggplot(my_pred, aes(x = factor(location), y = exp.fit., color = Sex))+
geom_errorbar(limits, position = position_dodge(width = 0.75), color = "black")+
geom_point(size = 8, position = position_dodge(width = 0.75), shape = 16)+
geom_point(data = a, aes(x = factor(location), y = Macross, colour = Sex), size = 8, shape = 17, alpha = 0.7,position = position_dodge(width = 0.75))

Вот "грубая" версия рисунка:


значения для доверительных интервалов:
> my_pred
exp.fit. exp.lower. exp.upper. location Sex
1 30.961669 7.6722541 124.946975 Тункинский ПП f
2 78.220600 52.5776978 116.369915 Долганская яма f
3 19.626074 7.8067394 49.339778 Охотничья f
4 8.158858 0.6930274 96.052420 Тигирек f
5 11.424414 4.3469659 30.024904 Барсуковская пещера f
6 9.012777 2.2112737 36.734553 Тункинский ПП m
7 22.769600 12.9430298 40.056672 Долганская яма m
8 5.713046 2.4043790 13.574770 Охотничья m
9 2.375000 0.2196026 25.685599 Тигирек m
10 3.325586 1.1329687 9.761543 Барсуковская пещера m

Но мне нужно построить ОТДЕЛЬНО рисунки для главных эффектов: один для локализации, другой - для пола. Но с этим кодом не очень-то и выходит.
Конечно, я могу построить по модели для каждого главного эффекта и получить рисунки, например:

M4 <- glm(Macross ~ location, data = a, family = "quasipoisson")

но, как мне кажется, доверительные интервалы этой модели не будут соответствовать модели M3.

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

Заранее спасибо за помощь!!!

https://dropmefiles.com/C0wL5 - ссылка на файл с данными

Заполнение пропущенных значений
ittei
Здравствуйте!
Есть таблица данных. В ней есть строки с пропущенными значениями. Значения пропущены со второго столбца до последнего. Т.е. если пропущены в одном столбце, то пропущены во всех столбцах, кроме первого. Нужно заполнить пропущенные данные, взяв их из предыдущей строки (построчно). Т.е. пропущенное значение берется из предыдущей строки соответствующего столбца.
Пока сделал следующую конструкцию:

m <- which(is.na(my_data[,2])==TRUE)[1]
while (is.na(m)==FALSE) {
my_data[m,2:dim(my_data)[2]] <- my_data[m-1,2:dim(my_data)[2]]
m <- which(is.na(my_data[,2])==TRUE)[1]
}


Конструкция мне категорически не нравится по нескольким причинам:
-Цикл, поэтому достаточно медленно вовсе даже не на большом объеме данных;
- Цикл while сам по себе достаточно неприятный;
Прошу помочь вариантом без цикла. Спасибо!

UPD.
Цикл в основном из-за того, что может быть несколько строк с пропусками.

"Теория Власти"(С) и применение в её обосновании возможностей R.
аватар
p2004r

No, no, Mr. Chollet. This is "R", not "Python". :)
аватар
p2004r
https://www.manning.com/books/deep-learning-with-r

Listing 6.1 Word-level one-hot encoding (toy example)

samples <- c("The cat sat on the mat.", "The dog ate my homework.")
token_index <- list()
for (sample in samples)
for (word in strsplit(sample, " ")[[1]])
if (!word %in% names(token_index))
token_index[[word]] <- length(token_index) + 2
max_length <- 10
results <- array(0, dim = c(length(samples),
max_length,
max(as.integer(token_index))))
for (i in 1:length(samples)) {
sample <- samples[[i]]
words <- head(strsplit(sample, " ")[[1]], n = max_length)
for (j in 1:length(words)) {
index <- token_index[[words[[j]]]]
results[[i, j, index]] <- 1
}
}





No, no, Mr. Chollet. This is "R", not "Python". :)


> samples <- c("The cat sat on the mat.", "The dog ate my homework.")
> parse <- strsplit(samples, " ")
> token_list <- unique(unlist(parse))
> lapply(parse,function(s)sapply(s, function(w) (1:length(token_list))[token_list %in% w] ))
[[1]]
The cat sat on the mat.
1 2 3 4 5 6

[[2]]
The dog ate my homework.
1 7 8 9 10 

Как сделать Производителя переменной?
elli_kuz

Специалисты, доброе утро!

Помогите, пожалуйста, справиться с задачкой:

dev.ord.src <- filter(df.raw, str_detect(Производитель, 'Samsung')) %>%

  dplyr::group_by(day, Способ.оформления.заказа) %>%

  dplyr::summarise(ord = n_distinct(Номер.заказа))  %>%

  reshape2::dcast(Способ.оформления.заказа ~ day, fun.aggregate = sum)

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

Фильтр одинаковый у всех блоков.

Как мне сделать, чтобы 'Samsung' можно было сделать переменной X, чтобы в начале кода один раз ее поменять на 'Apple' и все последующие кусочки, похожие на этот сразу у себя поменялись на Apple?


Reinforcement Learning in R
аватар
p2004r
Теперь обучение с подкреплением (в том числе когда модель задана в keras) доступно в R практически без написания своего кода.

https://cran.r-project.org/web/packages/reinforcelearn/index.html

Дуальные числа в R
светлое будущее
potan
Есть ли в R библиотека для дуальных чисел или возможность переопределять все операции с обычными числами, что бы реалиловать свой тип чисел?
Есть большой код, включающий в себя в том числе решение линейной системы с сильно разряженной матрицей. Требуется оценить влияние изменений некоторых параметров на результаты. Проще всего это было бы сделать, проделав вычисления в дуальных числах (или их обобщении с несколькими "мнимыми" единицами).

Помогите с перекодировкой данных из CSV в R
elli_kuz
Доброе утро!

Есть файл csv, который дальше нужно обрабатывать в R.
Если его открыть как csv то кодировка кривая.
Если открыть эксель и подгрузить через "Данные из текста" -> csv + кодировкой UTF-8, то русский шрифт в норме.

Помогите, пожалуйста, с переоределением кодировки в R:

Вариант 1.

df.raw <- read.csv('shop_hive.csv', header=TRUE, stringsAsFactors = F, sep="\t", fileEncoding= "utf-8", quote = "") читает только первые 7 строк .

Вариант 2.

df.raw <- read.csv('shop_hive.csv', header=TRUE, stringsAsFactors = F, sep="\t", Encoding= "utf-8", quote = "") не читается совсем, выдает ошибку

"Error in read.table(file = file, header = header, sep = sep, quote = quote, : unused argument (Encoding = "utf-8")"

Вариант 3.

df.raw <- read.csv('shop_hive.csv', header=TRUE, stringsAsFactors = F, sep="\t", quote = "") читает весь файл в битой кодировке

Проверка локале показала что

"LC_COLLATE=Russian_Russia.1251;LC_CTYPE=Russian_Russia.1251;LC_MONETARY=Russian_Russia.1251;LC_NUMERIC=C;LC_TIME=Russian_Russia.1251"

Что ж я делаю не так? Подскажите, пожалуйста, что нужно поменять исправить?

Спасибо!!

нужна помощь
Тейлор
archi_of_real
Дорогие любители R у меня к вам вопрос:
Есть файл с табличкой вида:
ID клиента, наименование продукта, сумма.

Для каждого клиента таких записей 10-20.
Я хочу сделать кластерный анализ, только не могу сообразить как сделать матрицу с показателями для каждого клиента. По идее нужно сделать что то типа сводной таблицы для что бы строка это id клиента а столбцы это услуги с суммами либо нулями.
И да, на компьютере установлена R-studio и видимо только базовый набор пакетов, без возможности скачать пакеты из репозитория. ( нет интернета ибо суровая СБ блюдет инфобезопастность)

Экосистема R
аватар
p2004r
Безусловно, что столь мощное и выразительное средство анализа данных, каковым является среда вычислений и визуализации R просто провоцирует "делать все не выходя за пределы R". Но надо не поддаваться соблазну такого "солипсизма" и "помнить о окружающем мире".

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

https://www.openanalytics.eu/products/
Метки: