Am1*_*3zA 8 math excel charts plot
我不太确定我是否可以在这里或在SuperUser上提出这个问题,
我想知道如何在excel中绘制输出的CDF图表.
我的数据是这样的(我的真实数据有22424条记录):
1 2.39E-05
1 2.39E-05
1 2.39E-05
2 4.77E-05
2 4.77E-05
2 4.77E-05
4 9.55E-05
4 9.55E-05
4 9.55E-05
4 9.55E-05
4 9.55E-05
4 9.55E-05
8 0.000190931
8 0.000190931
Run Code Online (Sandbox Code Playgroud)
您可以使用该NORMDIST函数并将最终参数设置为true:
例如,假设我有0.1至2.0的20个数据点,以0.1为增量,即0.1、0.2、0.3 ... 2.0。
现在假设该数据集的平均值为1.0,标准差为0.2。
要获得CDF图,我可以对每个值使用以下公式:
=NORMDIST(x, 1.0, 0.2, TRUE) -- where x is 0.1, 0.2, 0.3...2.0
Run Code Online (Sandbox Code Playgroud)

要从数据中删除重复的条目,并删除相同的值,可以使用以下代码。
ALT + F11即可开启VBEInsert > Module在编辑器中放置一个模块RemoveDuplicates然后按F5运行代码如此一来,您唯一的汇总结果将显示在工作簿的Sheet2中。
Sub RemoveDuplicates()
Dim rng As Range
Set rng = Range("A1:B" & GetLastRow(Range("A1")))
rng.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Worksheets("Sheet2").Range("A1"), Unique:=True
Dim filteredRng As Range
Dim cl As Range
Set filteredRng = Worksheets("Sheet2").Range("A1:A" & GetLastRow(Worksheets("Sheet2").Range("A1")))
For Each cl In filteredRng
cl.Offset(0, 1) = Application.WorksheetFunction.SumIf(rng.Columns(1), cl.Value, rng.Columns(2))
Next cl
End Sub
Function GetLastRow(rng As Range) As Long
GetLastRow = rng.End(xlDown).Row
End Function
Run Code Online (Sandbox Code Playgroud)
小智 5
这个答案是如何创建“经验分布函数”,这是许多人(包括我自己)在说 CDF 时真正想到的…… https://en.wikipedia.org/wiki/Empirical_distribution_function
假设样本数据的第二列从单元格 B1 开始,在单元格 C1 中,键入:
=SUM(IF($B$1:$B$14<=B1,1,0))/COUNT($B$1:$B$14)
Run Code Online (Sandbox Code Playgroud)
然后按 Shift+Enter,将其作为数组公式输入。它现在在公式栏中看起来像这样:
{=SUM(IF($B$1:$B$14<=B1,1,0))/COUNT($B$1:$B$14)}
Run Code Online (Sandbox Code Playgroud)
向下复制单元格以覆盖 C1:C14。然后以 B1:B14 为 X,C1:C14 为 Y 绘制散点图。它将显示四个点。
| 归档时间: |
|
| 查看次数: |
52854 次 |
| 最近记录: |