计算标准误差Vba
我想用VBA添加一个标准的错误函数到excel中,到目前为止我只是一个标准偏差函数的变体。 我在线获得了函数,并在最后一行中对其进行了更改,除以总数据点的平方根。 这似乎不适用于我。
编辑:当我尝试使用Excel电子表格上的函数时,无论数据集是什么,它都会显示为0。
Function StdErr(numbers As Range) As Double Dim i As Integer Dim xbar As Double Dim x As Double xbar = WorksheetFunction.Average(numbers) For i = 1 To numbers.Count x = x + (numbers.Item(i).Value - xbar) ^ 2 Next i SrdErr = (x / numbers.Count) / (Sqr(numbers.Count)) End Function
几个与你的代码问题:(1)最后一条语句错误的函数名称SrdErr
而不是StdErr
。 这就是为什么你得到0.(2)根据微软的文档 ,函数定义本身是不正确的。
尝试这个:
Option Explicit Function StdErr(numbers As Range) As Double Dim StdDev As Double Dim Size As Integer StdDev = WorksheetFunction.StDev_S(numbers) Size = WorksheetFunction.Count(numbers) StdErr = StdDev / Sqr(Size) End Function
包含Option Explicit
是一个好主意,所以你可以避免这样的愚蠢的拼写错误。
你得到零的原因是因为一个错字。
SrdErr =
最后应该是StdErr =
。
你可以直接做到这一点:
Function StdErr(numbers As Range) As Double StdErr = Application.WorksheetFunction.StDev_S(numbers) / (Sqr(numbers.Count)) End Function
你的公式似乎有一个不正确的分母和一个缺失的平方根在总体分子,至less是你正在试图做这个公式