【发布时间】:2012-06-02 06:03:15
【问题描述】:
我想从向量s<-0:1440 中采样值以创建向量u,以便sum(u)=x 而length(u)<k,对于给定的k 和x。显然是k*max(s)>sum(u)。
有没有办法蛮力模拟大量这样的u 向量?我想避免弄乱概率分布(用于采样),并且我不在乎是否会丢弃某些 u 向量。
编辑:关于 P Lapointe 对 length(u) 的好评。重要的是 length(u) 不应固定 (length(u)<k),以便向量 u 具有可变长度。另一种方法是修复length(u)=k,但该算法应该能够在 u 向量中随机插入(模拟)零。这将导致通过添加零,sum(u) 保持不变,但length(u) 增加一(直到length(u)=k)。零点随机出现很重要(不仅仅是在模拟向量的末尾,只是为了满足length(u)=k)
【问题讨论】:
-
这看起来像是带有基数约束 (k) 的 MIP(混合整数规划)。您可以在 cran.r-project.org/web/views/Optimization.html 上尝试 MIP 求解器
-
“一些”是多少?您可以使用少于
k的术语对大量向量进行采样,然后丢弃所有不等于x的向量。 -
有人能给我指出一些 MIP(初学者)的阅读材料吗?
标签: r conditional simulation sampling