Рассчитать базовую статистику в R - PullRequest
0 голосов
/ 16 мая 2018

Я нуб, когда использую R.

Мой эксперимент: у меня 300 генотипов, каждый из которых посажен в 6 разных местах.Для каждого генотипа в каждом месте у меня есть мера урожайности.

Что я хотел бы сделать: я хотел бы рассчитать среднее значение, стандартное отклонение и стандартную ошибку для каждого генотипа, сначала используя данные о доходности6 мест.Позже я хочу вычислить те же статистические параметры только для 5 местоположений, а затем для 4 местоположений.

Это пример моего желаемого результата:

enter image description here

Я искал несколько дней, но не могу найти, как это сделать.

Ответы [ 2 ]

0 голосов
/ 19 мая 2018

Это интересная вещь, и я бы сделал это с помощью "подобных" методов Монте-Карло. Определенно, я бы рекомендовал непараметрические методы, потому что размерность данных не поддерживает предположения о распределении. Предположим, генотип не имеет значения, и объедините их в шести местах [или 5 или 4] ... чтобы распределить средства. Соответствующий квинтиль одного определенного среднего генотипа означает, что соответствующее число местоположений означает, что намного больше говорит вам о генотипе, чем само среднее. Также из этого распределения выпадает стандартная ошибка средств. Стандартное отклонение этого распределения аналогично позволяет узнать стандартное отклонение среди средних и позволяет проводить проверку значимости. Я знаю, что этот ответ немного касателен, но построение дистрибутива для шести местоположений с учетом стандартного отклонения этого мало о чем говорит. Аналогично, если вы берете стандартное отклонение для всех строк и строите распределение стандартных отклонений, вы можете увидеть, насколько сильно стандартное отклонение данного генотипа снова относительно популяции, просто используя квинтиль. Я предполагаю, что оптимальный генотип будет иметь высокий квинтиль в среднем распределении и низкий квинтиль в стандартном распределении отклонений для данного местоположения или среди всех местоположений. В зависимости, конечно, от конкретного вопроса

0 голосов
/ 18 мая 2018

Допустим, это ваши данные:

library(data.table)
dt= data.table(genotype=sample(1:10,size=20,replace=T),
               location=sample(1:6,size=20,replace=T),
               yield=round(runif(20,1000,1500)))

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

m1 = dt[,.(mean_6_locations=mean(yield)),by=genotype]  

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

m2 = dt[!location %in% c(10),.(mean_5_locations=mean(yield)),by=genotype]

m3 = dt[!location %in% c(5,10),.(mean_4_locations=mean(yield)),by=genotype]

Обратите внимание, что местоположение 10 исключено для среднего значения из 5 местоположенийаналогично местоположения 5 и 10 исключены для среднего значения из 4 местоположений.

Наконец, вам нужно объединить все в одну таблицу:

m12 = merge(m1,m2)
m123 = merge(m12,m3)
print(m123)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...