# fuzzy.ttest: Function to compute the fuzzy Student t test based on... In genefu: Computation of Gene Expression-Based Signatures in Breast Cancer

## Description

This function allows for computing the weighted mean and weighted variance of a vector of continuous values.

## Usage

 ```1 2``` ```fuzzy.ttest(x, w1, w2, alternative=c("two.sided", "less", "greater"), check.w = TRUE, na.rm = FALSE) ```

## Arguments

 `x` an object containing the observed values. `w1` a numerical vector of weights of the same length as `x` giving the weights to use for elements of `x` in the first class. `w2` a numerical vector of weights of the same length as `x` giving the weights to use for elements of `x` in the second class. `alternative` a character string specifying the alternative hypothesis, must be one of "two.sided" (default), "greater" or "less". You can specify just the initial letter. `check.w` `TRUE` if weights should be checked such that 0 <= w <= 1 and (w1[i] + w2[i]) < 1 for 1 <= i <= length(x), `FALSE` otherwise. Beware that weights greater than one may inflate over-optimistically resulting p-values, use with caution. `na.rm` `TRUE` if missing values should be removed, `FALSE` otherwise.

## Details

The weights `w1` and `w2` should represent the likelihood for each observation stored in `x` to belong to the first and second class, respectively. Therefore the values contained in `w1` and `w2` should lay in [0,1] and 0 <= (w1[i] + w2[i]) <= 1 for i in {0,1,...,n} where n is the length of x.

The Welch's version of the t test is implemented in this function, therefore assuming unequal sample size and unequal variance. The sample size of the first and second class are calculated as the `sum(w1)` and `sum(w2)`, respectively.

## Value

A numeric vector of six values that are the difference between the two weighted means, the value of the t statistic, the sample size of class 1, the sample size of class 2, the degree of freedom and the corresponding p-value.

## Author(s)

Benjamin Haibe-Kains

weighted.mean

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21``` ```set.seed(54321) ## random generation of 50 normally distributed values for each of the two classes xx <- c(rnorm(50), rnorm(50)+1) ## fuzzy membership to class 1 ww1 <- runif(50) + 0.3 ww1[ww1 > 1] <- 1 ww1 <- c(ww1, 1 - ww1) ## fuzzy membership to class 2 ww2 <- 1 - ww1 ## Welch's t test weighted by fuzzy membership to class 1 and 2 wt <- fuzzy.ttest(x=xx, w1=ww1, w2=ww2) print(wt) ## Not run: ## permutation test to compute the null distribution of the weighted t statistic wt <- wt rands <- t(sapply(1:1000, function(x,y) { return(sample(1:y)) }, y=length(xx))) randst <- apply(rands, 1, function(x, xx, ww1, ww2) { return(fuzzy.ttest(x=xx, w1=ww1[x], w2=ww2[x])) }, xx=xx, ww1=ww1, ww2=ww2) ifelse(wt < 0, sum(randst <= wt), sum(randst >= wt)) / length(randst) ## End(Not run) ```

### Example output

```Loading required package: survcomp
Package 'mclust' version 5.4.2
Type 'citation("mclust")' for citing this R package in publications.

Attaching package: 'BiocGenerics'

The following objects are masked from 'package:parallel':

clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
clusterExport, clusterMap, parApply, parCapply, parLapply,
parLapplyLB, parRapply, parSapply, parSapplyLB

The following object is masked from 'package:limma':

plotMA

The following objects are masked from 'package:stats':

The following objects are masked from 'package:base':

Filter, Find, Map, Position, Reduce, anyDuplicated, append,
as.data.frame, basename, cbind, colMeans, colSums, colnames,
dirname, do.call, duplicated, eval, evalq, get, grep, grepl,
intersect, is.unsorted, lapply, lengths, mapply, match, mget,
order, paste, pmax, pmax.int, pmin, pmin.int, rank, rbind,
rowMeans, rowSums, rownames, sapply, setdiff, sort, table, tapply,
union, unique, unsplit, which, which.max, which.min

Welcome to Bioconductor

Vignettes contain introductory material; view with
'browseVignettes()'. To cite Bioconductor, see
'citation("Biobase")', and for packages 'citation("pkgname")'.

diff     t.value          n1          n2          df     p.value
-0.46562992 -2.10753749 50.00000000 50.00000000 97.37120588  0.03763985
t.value
0.001
```

genefu documentation built on Jan. 28, 2021, 2:01 a.m.