Learn R Programming

DnE (version 1.0)

is.norm: is.norm

Description

judge if the data obey normal distribution.

Usage

is.norm(x, m, a)

Arguments

x
data
m
the numbers of intervals of data you wanna devide
a
confidence level

Value

  • if data obey the distribution, return a value represent the likelihood, the larger the better; else return -1.

Details

Given a set of observations from a certain distribution, this function is used to test whether the observations are from a distribution of normal distribution or not. The function will work better if the number you choose to devide the interval is between 5 and 20.

References

ROBERT V. HOGG/ALLEN T. CRAIG (Fifth Edition) Introduction Mathematical Statistics.

See Also

is.dt , DnE-package

Examples

Run this code
require(stats)
examplecheck<-rnorm(100,0,1)
is.norm(examplecheck,10,0.05)
#examplecheck is a dataset with a defined distribution you want to check. suppose you want to devide the interval into 10 parts and want the confidence level to be 0.05#
##---- Should be DIRECTLY executable !! ----
##-- ==>  Define data, use random,
##--	or do  help(data=index)  for the standard data sets.

## The function is currently defined as
function (x, m, a) 
{
    x = scale(x)
    p = rep(0, m + 2)
    y = rep(0, m + 2)
    q = 0
    df = m + 1
    di = max(x) - min(x)
    for (i in 1:m) {
        p[i] = pnorm(di * i/m) - pnorm(di * (i - 1)/m)
        if (p[i] == 0) {
            break
        }
        for (j in 1:length(x)) if (x[j] > di * (i - 1)/m && x[j] <= 
            di * i/m) 
            y[i] = y[i] + 1
        q = q + (y[i] - (length(x) * p[i]))^2/(length(x) * p[i])
    }
    p[m + 1] = pnorm(Inf) - pnorm(max(x))
    p[m + 2] = pnorm(min(x))
    y[m + 2] = length(which(x == min(x)))
    q = q + length(x) * p[m + 1]
    q = q + (y[m + 2] - (length(x) * p[m + 2]))^2/(length(x) * 
        p[m + 2])
    q0 = qchisq(1 - a, df)
    if (q <= q0) {
        return(q0 - q)
    }
    else {
        return(-1)
    }
  }

Run the code above in your browser using DataLab