R 用一些数据拟合正态分布,得到概率
我得到了这些数据,我需要拟合一个正态分布,以得到另一组与发生概率相关的数据R 用一些数据拟合正态分布,得到概率,r,distribution,R,Distribution,我得到了这些数据,我需要拟合一个正态分布,以得到另一组与发生概率相关的数据 data = c(150,94.1,127.6,77.2,136.1,83.4,75.6,92.7,106.5,95.9,112.1,90.4,143.7,152.7,113.3,143.9,87.9,85.2,117.2,193,153.7,84.7,97.3,140.3,80,103.6,72.6,90.7,52.6,52.8) 然后是发生的概率: returntime = c(1.02,1.5,2,3,4,5,6
data = c(150,94.1,127.6,77.2,136.1,83.4,75.6,92.7,106.5,95.9,112.1,90.4,143.7,152.7,113.3,143.9,87.9,85.2,117.2,193,153.7,84.7,97.3,140.3,80,103.6,72.6,90.7,52.6,52.8)
然后是发生的概率:
returntime = c(1.02,1.5,2,3,4,5,6,7,8,9,10,15,20,25,30,50,100,200,500,1000,5000,10000) #years
prob_returntime = 1/returntime #need to get the data associated with this prob.
我试图使用qnorm(),但我认为我做错了什么
预期产出:
如果您想找到对应于
数据的正态分布分位数,但对于1-prob\u returntime
的值,我们可以执行以下操作
代码
# Estimate mean and standard deviation from your data
mu <- mean(data)
std <- sd(data)
# then use qnorm to get quantiles of data associated with return prob
data.frame("return_time" = returntime, "probability" = 1/returntime,
"data value" = qnorm(1 - (1 / returntime), mu, std))
# return_time probability data.value
# 1 1.02 0.98039216 38.94683
# 2 1.50 0.66666667 92.69954
# 3 2.00 0.50000000 106.89333
# 4 3.00 0.33333333 121.08712
# 5 4.00 0.25000000 129.11985
# 6 5.00 0.20000000 134.62735
# 7 6.00 0.16666667 138.77285
# 8 7.00 0.14285714 142.07307
# 9 8.00 0.12500000 144.80089
# 10 9.00 0.11111111 147.11719
# 11 10.00 0.10000000 149.12440
# 12 15.00 0.06666667 156.35874
# 13 20.00 0.05000000 161.09633
# 14 25.00 0.04000000 164.58383
# 15 30.00 0.03333333 167.32647
# 16 50.00 0.02000000 174.57069
# 17 100.00 0.01000000 183.55366
# 18 200.00 0.00500000 191.77484
# 19 500.00 0.00200000 201.73763
# 20 1000.00 0.00100000 208.72601
# 21 5000.00 0.00020000 223.55000
# 22 10000.00 0.00010000 229.44638
#估计数据的平均值和标准偏差
mu如果您想找到对应于数据的正态分布分位数,但对于1-prob_returntime
的值,我们可以执行以下操作
代码
# Estimate mean and standard deviation from your data
mu <- mean(data)
std <- sd(data)
# then use qnorm to get quantiles of data associated with return prob
data.frame("return_time" = returntime, "probability" = 1/returntime,
"data value" = qnorm(1 - (1 / returntime), mu, std))
# return_time probability data.value
# 1 1.02 0.98039216 38.94683
# 2 1.50 0.66666667 92.69954
# 3 2.00 0.50000000 106.89333
# 4 3.00 0.33333333 121.08712
# 5 4.00 0.25000000 129.11985
# 6 5.00 0.20000000 134.62735
# 7 6.00 0.16666667 138.77285
# 8 7.00 0.14285714 142.07307
# 9 8.00 0.12500000 144.80089
# 10 9.00 0.11111111 147.11719
# 11 10.00 0.10000000 149.12440
# 12 15.00 0.06666667 156.35874
# 13 20.00 0.05000000 161.09633
# 14 25.00 0.04000000 164.58383
# 15 30.00 0.03333333 167.32647
# 16 50.00 0.02000000 174.57069
# 17 100.00 0.01000000 183.55366
# 18 200.00 0.00500000 191.77484
# 19 500.00 0.00200000 201.73763
# 20 1000.00 0.00100000 208.72601
# 21 5000.00 0.00020000 223.55000
# 22 10000.00 0.00010000 229.44638
#估计数据的平均值和标准偏差
我不太清楚你在问什么。您首先写下您正在寻找概率,然后还声明您想要使用一个分位数
函数,它是累积分布函数的逆函数。请将预期输出添加到您的问题。嘿,我做了编辑。请看一看。但是是的,我需要cdf的倒数@你想找出降雨和“返程时间”(不管是什么)之间的联系吗?现在还不清楚你想在这里做什么,你可能会通过预先声明它涉及正态分布的分位数而把自己(和其他人)引向悬崖。好吧,我一直在看你的数据,这对我来说毫无意义。首先,你没有试图根据rt或rt反演来预测降雨,因为你有30个观测值和22个rt值。其次,你究竟如何看待时间反演(在你的评论中以年为单位)作为一种概率?引用Ricky Ricardo对Lucille Ball说的话,“Lucy,你有一些事情要做!”也许可以帮助你解释一下这里所做的工作,作为对情况的介绍。我不太清楚你在问什么。您首先写下您正在寻找概率,然后还声明您想要使用一个分位数
函数,它是累积分布函数的逆函数。请将预期输出添加到您的问题。嘿,我做了编辑。请看一看。但是是的,我需要cdf的倒数@你想找出降雨和“返程时间”(不管是什么)之间的联系吗?现在还不清楚你想在这里做什么,你可能会通过预先声明它涉及正态分布的分位数而把自己(和其他人)引向悬崖。好吧,我一直在看你的数据,这对我来说毫无意义。首先,你没有试图根据rt或rt反演来预测降雨,因为你有30个观测值和22个rt值。其次,你究竟如何看待时间反演(在你的评论中以年为单位)作为一种概率?引用Ricky Ricardo对Lucille Ball说的错误话,“Lucy,你有一些事情要做!”也许可以帮助解释更多关于这里所做工作的介绍,以解释这种情况。是的,但有些事情是错误的,因为数据价值越高,回报时间越长。数据对应于降雨量(mm),我们在这里看到的分位数对应于概率(1/返回时间)。高概率产生高值。本质上,我们是在问数据是否是正态分布的,数据的mean()
和sd()
值是多少,98%的数据将小于或等于该值。因此,高概率值产生的分位数远位于平均值的右侧。在excel中,这是由(平均值+(Z*sd))得出的。你能把这个操作和R中的某个函数联系起来吗?@Bryan Souza什么是Z
?我找到了答案。我们需要使用(1-prob)来实现这一点。谢谢你的帮助!是的,但有点不对劲,因为数据值越高,返回时间越长。数据对应于降雨量(mm),我们在这里看到的分位数对应于概率(1/返回时间)。高概率产生高值。本质上,我们是在问数据是否是正态分布的,数据的mean()
和sd()
值是多少,98%的数据将小于或等于该值。因此,高概率值产生的分位数远位于平均值的右侧。在excel中,这是由(平均值+(Z*sd))得出的。你能把这个操作和R中的某个函数联系起来吗?@Bryan Souza什么是Z
?我找到了答案。我们需要使用(1-prob)来实现这一点。谢谢你的帮助!