【发布时间】:2019-08-07 12:23:08
【问题描述】:
我对编程很陌生,因此,如果我的问题看起来很基础,我深表歉意。
基本上我现在有一个 apprx 的数据集。 300 行。现在的想法是创建一个大小为 10k 的全新数据集,但是它仍然具有与 300 的 smlla 数据集相同的特征。
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
我已经进行了探索性分析。我知道我的数字数据具有 beta 分布,并且我知道平均值和 sd(以及相关的偏度水平) 对于我的分类数据,我知道百分比分布,因此例如类别 A 占数据集的 25%。 B 类占 35%,C 类占 40%。
我现在的问题是:为了模拟这些数据并创建更大的数据集,最好的软件包是什么?
我在 simstudy 包上发现它看起来非常好,但是,我对编程还是很陌生,我很难理解代码。
这里是描述的链接 https://cran.r-project.org/web/packages/simstudy/vignettes/simstudy.html (我还检查了 R 文档,但对于像我这样的新手来说,很难理解并完全理解它)
我仍然不知道如何在那里定义我的分类值。 (他们在那里设置了单个类的百分比分布,但实际上并没有设置适用于哪个类。
也许,这里有人可以帮我解释一下如何将它应用到我的数据集上,或者还有其他更好的包吗?
非常感谢您!
编辑
所以我当前使用 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)
但是,我的问题是我无法创建倾斜的 beta 分布(而且我知道我的数据向右倾斜)。
或者,我可以使用这个公式,但在这里我必须单独创建每一列,并且我无法在某些列之间创建关系(f.i. 相关性,我稍后也必须创建)
rsbeta(n, shape1, shape)
# shape1 <0 & shape2 >0 creates a right skewede beta distribution
rsbeta(1000, 0.2,3)
还有什么其他的建议可以解决这个问题吗?
您通常如何模拟只有有限条目的不同数据集?
【问题讨论】:
标签: r statistics simulation analysis