我有2列,一列有我的数据点,另一列有每个数据点的标准偏差.如何在Excel上绘制线图,误差条等于每个点的透视标准偏差?
例如
Col-1 Col-2
1 0.1
2 0.2
3 0.1
Run Code Online (Sandbox Code Playgroud) 您好我想知道如何使用gnuplot计算数据文件列的标准偏差.我知道gnuplot使用n $ n引用一个列,但我如何(可以提供函数)添加$ n的所有值.这就是我在gnuplot中无法做到的,他们不想使用一些外部程序.由于gnuplot使用符号$ n,我猜这是可能的,但不是如此.有什么建议?
我正在尝试计算最近 6 个月的 STDEVX.P(不包括当月;所以在 2017 年 5 月,我想计算 2016 年 11 月至 2017 年 4 月期间的 STDEVX.P)按产品销售,以便进一步计算销售订单的变化。
销售数据由每日交易组成,因此它包含交易日期: iContractsChargebacks[TransactionDate]和售出单位数:iContractsChargebacks[ChargebackUnits],但如果在给定时间段内没有销售,则该月将没有数据。
因此,例如,在 7 月 1 日,过去 6 个月的销售额如下:
Jan 100
Feb 125
Apr 140
May 125
Jun 130
Run Code Online (Sandbox Code Playgroud)
由于没有销售,March 没有出现。所以,当我在数据集上计算 STDEVX.P 时,它计算了 5 个周期,而实际上有 6 个,只有一个恰好为零。
归根结底,我需要计算当前六个月期间的 STDEVX.P。如果在拉取月销售数字时,它只返回 3 个期间(月),则需要假设其他 3 个期间为零值。
我考虑过手动计算标准偏差而不是使用 DAX STDEVX.P 公式,并发现这 2 个链接作为如何执行此操作的参考,第一个最接近我的需要:
https://community.powerbi.com/t5/Desktop/Problem-with-STDEV/td-p/19731
我试图试一试,但仍然没有得到正确的计算。我的代码是:
STDEVX2 =
var Averageprice=[6M Sales]
var months=6
return
SQRT(
DIVIDE(SUMX(
FILTER(ALL(DimDate),
DimDate[Month ID]<=(MAX(DimDate[Month ID])-1) …Run Code Online (Sandbox Code Playgroud) 是否有矢量化操作来计算 Python DataFrame 的累积和滚动标准偏差 (SD)?
例如,我想添加一个列 'c',它根据列 'a' 计算累积 SD,即在索引 0 中,由于 1 个数据点,它显示 NaN,在索引 1 中,它根据 2 个数据计算 SD积分等等。
同样的问题也适用于滚动 SD。有没有一种有效的方法来计算而不通过 df.itertuples() 进行迭代?
import numpy as np
import pandas as pd
def main():
np.random.seed(123)
df = pd.DataFrame(np.random.randn(10, 2), columns=['a', 'b'])
print(df)
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud) 我正在尝试计算birthwt在 RStudio 中找到的出生体重数据集 ( ) 的描述性统计数据。不过,我只关心几个变量:age,ftv,ptl和lwt。
这是我到目前为止的代码:
library(MASS)
library(dplyr)
data("birthwt")
grouped <- group_by(birthwt, age, ftv, ptl, lwt)
summarise(grouped,
mean = mean(bwt),
median = median(bwt),
SD = sd(bwt))
Run Code Online (Sandbox Code Playgroud)
它给了我一张印刷精美的表格,但只有有限数量的 SD 被填满,其余的说NA. 我就是不知道为什么或如何解决它!
我X在数据框中有一列,我需要找到累积标准偏差.
X Cumulative.SD
1 -
4 2.12
5 2.08
6 2.16
9 2.91
Run Code Online (Sandbox Code Playgroud) 我想创建一个数据框架,其中包含包含工具的几个不同的列,然后在方括号中显示sd。举个例子:
df <- iris
mean <- aggregate(df[,1:4], list(iris$Species), mean)
sd <- aggregate(df[,1:4], list(iris$Species), sd)
view(mean)
Group.1 Sepal.Length Sepal.Width Petal.Length Petal.Width
1 setosa 5.006 3.428 1.462 0.246
2 versicolor 5.936 2.770 4.260 1.326
3 virginica 6.588 2.974 5.552 2.026
view(sd)
Group.1 Sepal.Length Sepal.Width Petal.Length Petal.Width
1 setosa 0.3524897 0.3790644 0.1736640 0.1053856
2 versicolor 0.5161711 0.3137983 0.4699110 0.1977527
3 virginica 0.6358796 0.3224966 0.5518947 0.2746501
Run Code Online (Sandbox Code Playgroud)
现在我想要这样的东西:
Group.1 Sepal.Length Sepal.Width Petal.Length Petal.Width
1 setosa 5.0 (0.35) 3.4 (0.38) 1.5 (0.17) 0.2 (0.11)
2 versicolor …Run Code Online (Sandbox Code Playgroud) 我正在使用 Python 双端队列数据类型计算简单移动平均值,我想知道是否有办法让它将其视为某种数组并找到双端队列的标准偏差?
我有一个大小为 (61964, 25) 的矩阵。这是一个示例:
array([[ 1., 0., 0., 4., 0., 1., 0., 0., 0., 0., 3.,
0., 2., 1., 0., 0., 3., 0., 3., 0., 14., 0.,
2., 0., 4.],
[ 0., 0., 0., 1., 2., 0., 0., 0., 0., 0., 1.,
0., 2., 0., 0., 0., 0., 0., 0., 0., 5., 0.,
0., 0., 1.]])
Run Code Online (Sandbox Code Playgroud)
Scikit-learn 提供了一个有用的函数,前提是我们的数据呈正态分布:
from sklearn import preprocessing
X_2 = preprocessing.scale(X[:, :3])
Run Code Online (Sandbox Code Playgroud)
然而,我的问题是我必须按行进行工作 - 这不仅仅包含 25 个观察值 - 因此正态分布在这里不适用。解决方案是使用 t 分布,但如何在 Python 中做到这一点?
通常,值从 0 到 …
作为我研究的一部分,我从对数正态分布中测量绘制的均值和标准差.给定基础正态分布的值,应该可以分析预测这些量(如https://en.wikipedia.org/wiki/Log-normal_distribution所示).
但是,如下图所示,情况似乎并非如此.第一个图显示对数正态数据相对于高斯西格玛的平均值,而第二个图显示对数正态数据的西格玛与高斯的西格玛.显然,"计算"线非常显着地偏离"分析"线.
我将高斯分布的均值与sigma相关联,mu = -0.5*sigma**2因为这确保了对数正态场应该具有1的均值.注意,这是由我工作的物理领域的动机:与分析值的偏差仍然如果设置mu=0.0为例,则会发生.
通过复制和粘贴问题底部的代码,应该可以重现下面的图表.任何关于可能导致这种情况的建议都将不胜感激!
注意,为了生成上面的图,我使用了N=10000,但是N=1000为了速度已经输入了下面的代码.
import numpy as np
import matplotlib.pyplot as plt
mean_calc = []
sigma_calc = []
mean_analytic = []
sigma_analytic = []
ss = np.linspace(1.0,10.0,46)
N = 1000
for s in ss:
mu = -0.5*s*s
ln = np.random.lognormal(mean=mu, sigma=s, size=(N,N))
mean_calc += [np.average(ln)]
sigma_calc += [np.std(ln)]
mean_analytic += [np.exp(mu+0.5*s*s)]
sigma_analytic += [np.sqrt((np.exp(s**2)-1)*(np.exp(2*mu + s*s)))]
plt.loglog(ss,mean_calc,label='calculated')
plt.loglog(ss,mean_analytic,label='analytic')
plt.legend();plt.grid()
plt.xlabel(r'$\sigma_G$')
plt.ylabel(r'$\mu_{LN}$')
plt.show()
plt.loglog(ss,sigma_calc,label='calculated') …Run Code Online (Sandbox Code Playgroud)