08-15-2017 03:44 AM
Is there a way to calculate Kurtosis and Skewness value for each each second of data that is a long set of 360secs? Basically speaking, I need 360 values of kurtosis and skewness.
08-15-2017 04:19 AM
Set Group = Data.Root.ChannelGroups(1)
Set DatChannel = Group.Channels(1)
Set KurtosisChannel = Group.Channels.Add("Kurtosis", DataTypeChnFloat64)
Set SkewnessChannel = Group.Channels.Add("Skewness", DataTypeChnFloat64)
FOR n = 1 TO 23
StatSel(n) = "No"
NEXT ' n
StatSel(22) = "Yes" ' Kurtosis
StatSel(21) = "Yes" ' Skewness
StatResChn = FALSE
StatClipCopy = FALSE
StatClipValue = FALSE
iMax = DatChannel.Size
Start = DatChannel.Properties("wf_start_offset").Value
Delta = DatChannel.Properties("wf_increment").Value
Call ChnWfPropSet(KurtosisChannel, "Time", "s", (Start+1)/2, 1)
Call ChnWfPropSet(SkewnessChannel, "Time", "s", (Start+1)/2, 1)
SecVals = 1/Delta
FOR i = 1 TO iMax Step SecVals
k = k + 1
P1 = i
P2 = CStr(i+SecVals-1)
IF P2 > iMax THEN P2 = iMax
RowRange = P1 & "-" & P2
Call StatBlockCalc("Channel", RowRange, DatChannel)
KurtosisChannel(k) = StatKurtosis
SkewnessChannel(k) = StatSkew
NEXT ' Until end of channel
I am using the above script to find values. I am getting all the values I need. Here is the thing, the skewness values are negative and kurtosis are positive.
But when I run statistical values on the whole data, my skewnedd value is positive and kurtosis is negative.
Is that correct or is something wrong in my script?
08-16-2017 10:30 AM
Hey hmurya,
Thanks for posting. On first glance that would be how I would expect to calculate the kurtosis and skewness according to our documentation.
Command: StatBlockCalc - http://zone.ni.com/reference/en-XX/help/370859J-01/comoff/statblockcalc/
Maybe it might be good to try a clean known data set and see if we still see the same results. I think our Kurtosis should be 3 if we're testing a normal distribution and it should be 1 if we're testing a discrete distribution (discrete: equally likely values). From there we could also do a quick check on the skewness since it has a relation to the Kurtosis.
Hopefully that gives us a good starting place to figure out our script is doing what we want.