考虑一个 5 变量累积分布函数(cdf),我将其称为 F。
我想在 Matlab 中从这个 cdf 中随机采样 5x1 向量。F不是Matlab中已经实现的cdf(如normal、t-student等)。具体来说,它被定义为
我已经在这个论坛和其他论坛上阅读了几个关于如何从 Matlab 中自定义概率分布函数进行采样的问题/答案。然而,
1)大多数都是针对单变量cdf,例如这里。这个想法是应用逆变换采样。我的问题有点复杂,因为我需要“反转”5 变量函数。
2)另一种选择可能是按照此处的建议使用slicesample,但我不知道在我的情况下如何编写概率密度函数的解析表达式。
3)这是另一个想法,但特定于二元情况。
您能帮助我了解如何继续吗?
我在 Matlab 中有一个支持 ( supp_epsilon) 和一个概率质量函数 ( pr_mass_epsilon),构造如下。
supp_epsilon=[0.005 0.01 0.015 0.02];
suppsize_epsilon=size(supp_epsilon,2);
pr_mass_epsilon=zeros(suppsize_epsilon,1);
alpha=1;
beta=4;
for j=1:suppsize_epsilon
pr_mass_epsilon(j)=betacdf(supp_epsilon(j),alpha,beta)/sum(betacdf(supp_epsilon,alpha,beta));
end
Run Code Online (Sandbox Code Playgroud)
请注意, 的分量pr_mass_epsilon总和为1。现在,我想n从 中抽取随机数pr_mass_epsilon。我怎样才能做到这一点?我想要一个适用于任何suppsize_epsilon.
换句话说:我想从 中随机抽取元素supp_epsilon,每个元素的概率为pr_mass_epsilon。
我在 Stata 中的日期格式有问题。我相信这是一个非常简单的问题,但我不知道如何解决它。
我有一个 csv 文件(file.csv),看起来像
v1 v2
01/01/2000 1.1
01/02/2000 1.2
01/03/2000 1.3
...
01/12/2000 1.12
01/02/2001 1.1
...
01/12/2001 1.12
Run Code Online (Sandbox Code Playgroud)
v1 的形式为 dd/mm/yyyy。
我在 Stata 中使用导入文件 import delimited ...file.csv
v1 是一个字符串变量,v2 是一个浮点数。
我想在Stata可以读取的每月日期转换v1 。
我的尝试:
1)
gen Time = date(v1, "DMY")
format Time %tm
Run Code Online (Sandbox Code Playgroud)
这给了我
Time
3177m7
3180m2
3182m7
...
Run Code Online (Sandbox Code Playgroud)
看起来不对。
2)替代
gen v1_1=v1
replace v1_1 = substr(v1_1,4,length(v1_1))
gen Time_1 = date(v1_1, "MY")
format Time_1 %tm
Run Code Online (Sandbox Code Playgroud)
这给出了完全相同的结果。
如果我输入
tsset Time, format(%tm)
Run Code Online (Sandbox Code Playgroud)
它告诉我存在差距,但数据中没有差距。
你能帮我理解我做错了什么吗?
我正在tex使用社区贡献的命令在文件中导出回归结果esttab:
esttab using reg.tex, nonumbers mtitles("1" "2" "3" "4" "5" "6" "7" "8" "9")
Run Code Online (Sandbox Code Playgroud)
该表包含九列。
我想让字体大小和列宽更小,以便在编译LaTeX.
当我使用时,有没有办法直接在 Stata 中执行此操作esttab?
matlab ×2
random ×2
stata ×2
cdf ×1
csv ×1
date ×1
distribution ×1
latex ×1
probability ×1
sampling ×1