#r
#r
Вопрос:
Я новичок в этом, поэтому извините, если мой вопрос звучит просто. Вот моя проблема:
Я работаю над данными о сроках сбора урожая фруктов, цель состоит в том, чтобы получить значимые единичные значения для сравнения сроков разных сортов. Деревья собирают в течение нескольких недель, поэтому, если вы построите график урожайности каждого сорта за неделю, вы получите то, что можно было бы приравнять к нормальному распределению.
Моя идея состоит в том, чтобы получить статистические значения для распределения урожая по неделям.
Значения, о которых я думаю, — это квартили, IQR (межквартильный диапазон), эксцесс, асимметрия и т. Д… но я просто изо всех сил пытаюсь приблизиться к этому в R.
Мои данные представлены следующим образом:
cultivar, week , year , yield
var x, week 10 , year 1 , 600 grams
var y, week 10 , year 1 , 850 grams
var x, week 13 , year 1 , 1000 grams
var y, week 14 , year 1 , 1200 grams
var x, week 15 , year 1 , 700 grams
var y, week 16 , year 1 , 1000 grams
var x, week 10 , year 2 , 500 grams
var y, week 10 , year 2 , 700 grams
var x, week 13 , year 2 , 1300 grams
...
Спасибо
Ответ №1:
Предположим, что ваш фрейм данных выглядит следующим образом
> df
cultivar week year yield
1 var x week 10 year 1 600 grams
2 var y week 10 year 1 850 grams
3 var x week 13 year 1 1000 grams
4 var y week 14 year 1 1200 grams
5 var x week 15 year 1 700 grams
6 var y week 16 year 1 1000 grams
7 var x week 10 year 2 500 grams
8 var y week 10 year 2 700 grams
9 var x week 13 year 2 1300 grams
Вы можете получить квантили из summary
функции R. Однако для вычисления эксцесса и асимметрии требуется дополнительный пакет. Сначала введите следующую команду в консоли R.
install.packages("moments")
Затем вы можете запустить следующий скрипт
library(moments)
df$yield <- as.numeric(sub(" grams", "", df$yield)) # convert `yield` into a numeric vector
aggregate(
yield ~ cultivar, data = df,
function(x) c(summary(x), skewness = skewness(x), kurtosis = kurtosis(x))
)
Вывод
cultivar yield.Min. yield.1st Qu. yield.Median yield.Mean yield.3rd Qu. yield.Max. yield.skewness yield.kurtosis
1 var x 500.0000000 600.0000000 700.0000000 820.0000000 1000.0000000 1300.0000000 0.5692290 1.8333916
2 var y 700.0000000 812.5000000 925.0000000 937.5000000 1050.0000000 1200.0000000 0.1684715 1.7088259
Комментарии:
1. Это так здорово, спасибо за вашу помощь! Есть ли способ выразить квантили в неделях, чтобы я знал, что 25% от общего урожая за 1 год производится к неделе x, 50% к неделе y (медиана) и 75% к неделе z?
2. Здесь мне нужно некоторое разъяснение. AFAIK, 50% от общего урожая в год 1 не равно среднему недельному урожаю. Например, если урожайность составляет 30, 40, 50, 60 и 70 в соответствующие недели 1-го года, тогда медиана равна 50, но 50% от общего урожая равно 125. Чего именно вы хотите? @oliC
3. Привет, Ekoam, еще раз спасибо. Давайте упростим это: если у вас var x, неделя 1, 100 грамм var x , неделя 2, 200 грамм var x , неделя 3, 300 грамм var x , неделя 4, 200 грамм var x , неделя 5, 100 грамм, нанесите недели на ось x, а урожай — на ось y. Вопросы: Каков межквартильный интервал в неделях? Какова средняя неделя? что такое эксцесс? Что такое квантили?… Если вы подумаете об этом, это может быть гистограмма, где каждый грамм урожая попадает в категорию (неделю), поэтому я не понимаю, почему мы не могли получить эти значения… Я просто не понимаю, как…
4. В вашем примере IQR равен 100, 1-й квантиль равен 200, а 3-й квантиль равен 300. Однако у вас есть две недели с урожаем в 200 граммов. Тогда какую неделю вы хотите показать? Кроме того, если есть, например, 6 недель со следующими урожаями: 100, 200, 300, 174, 100, 100, тогда IQR становится 93,5, 3-й квантиль становится 193,5, а 1-й квантиль равен 100. Тогда как вы можете сопоставить IQR или 3-й квантиль с неделей? @oliC
5. Извините, если я плохо объясняюсь. Давайте выразимся по-другому: то, как я это визуализирую (теоретически), представляет собой гистограмму (или соответствующий ей гауссовский колокол), где x = недели (упорядоченные) и y = урожай. вопрос в том, что такое x, когда y = 25% от общего урожая ? и 50% и 75%? @ekoam