---
title: "Introduction to SSTN"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Introduction to sstn}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  message = FALSE,
  warning = FALSE
)
```

```{r library setup}
library(sstn)
```

# Introduction

The SSTN package provides the Self-Similarity Test for Normality (SSTN), a statistical test designed to assess whether a given numeric sample originates from a normal distribution.

The SSTN relies on iteratively estimating the characteristic function of the sum of i.i.d. random variables based on the standardized data and comparing these estimated characteristic functions.

A Monte Carlo procedure is used to generate the distribution of the test statistic under the null hypothesis, which allows computation of a $p$-value.

# Main function of the package

- `sstn()`: This is the primary function of the package, which performs the SSTN to assess whether a given numeric sample originates from a normal distribution. The function returns a $p$-value indicating the significance of the deviation from normality.

Below, we provide a brief example of how to use the `sstn()` function.

```{r example setup}
set.seed(123)

# Sample from standard normal (null hypothesis true)
x <- rnorm(100)
res <- sstn(x)
res$p_value

# Sample from Gamma distribution (null hypothesis false)
y <- rgamma(100, 1)
res2 <- sstn(y)
res2$p_value

```

# References

For more detailed information on the methods used in this package, please refer to the following publication:

Anarat A. and Schwender, H. (2026). A test for normality based on self-similarity. arXiv preprint. https://arxiv.org/abs/2604.03810
