Я очень новичок в программировании, поэтому я прошу прощения за то, что мой вопрос может показаться принципиальным.
В основном у меня сейчас есть набор данных ок. 300 рядов. Идея заключалась в том, чтобы создать, например, целый новый набор данных размером 10 КБ, который по-прежнему обладает теми же характеристиками, что и набор данных smlla, равный 300.
ID Category1 Category2 Amount1 Probability1
1 Class1 A 100 0.3
2 Class2 B 800 0.2
3 Class3 C 300 0.7
4 Class2 A 250 0.4
5 Class3 C 900 0.6
Я уже сделал предварительный анализ. Я знаю, что мои числовые данные имеют бета-распределение, и я знаю среднее значение и sd (и уровень асимметрии, если это уместно)
Для моих категориальных данных я знаю процентное распределение, поэтому для категории A берут 25% набора данных. Категория B занимает 35%, а категория C - 40%.
Теперь у меня вопрос: какие пакеты лучше всего имитируют эти данные и создают больший набор данных?
Я нашел в пакете simstudy, который показался мне очень хорошим, но я все еще новичок в программировании, и мне трудно разобраться с кодом.
Вот ссылка на описание
https://cran.r -project.org / веб / пакеты / simstudy / виньетки / simstudy.html
(Я также проверил документацию R, но для такого новичка, как я, очень трудно следить и полностью его понимать)
Я до сих пор не понимаю, как я могу определить свои категориальные значения. (Они устанавливают процентное распределение отдельных классов, но на самом деле не устанавливают, что и к какому классу относится.
Может быть, кто-то здесь может помочь мне объяснить, как я могу применить его к моему набору данных или есть другой лучший пакет для этого?
Заранее большое спасибо!
EDIT
Итак, мой текущий код с пакетом simstudy следующий:
def <- defData(varname = "Product_Class", formula = "0.25;0.35;0.4", dist = "categorical")
def <- defData(varname = "Category", formula = "0.25;0.35;0.4", dist = "categorical")
def <- defData(def, varname = "Amount", dist = "beta", formula = 0.6, variance = 0.12)
def <- defData(def, varname = "Amount2", dist = "beta", formula = 0.45, variance = 0.1)
def <- defData(def, varname = "Probability", dist = "beta", formula = 0.4, variance = 0.23)
Однако, здесь моя проблема в том, что я не могу создать асимметричный бета-дистрибутив (и я знаю, что мои данные перекошены вправо).
В качестве альтернативы, я мог бы использовать эту формулу, но здесь я должен создать каждый столбец отдельно, и я не могу создать связь между некоторыми столбцами (например, корреляцию, которую я должен был бы создать позже)
rsbeta(n, shape1, shape)
# shape1 <0 & shape2 >0 creates a right skewede beta distribution
rsbeta(1000, 0.2,3)
Любые другие предложения, как решить эту проблему?
Как вы обычно делаете моделирование различных наборов данных, которые имеют только ограниченное количество записей?