Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitee4d92a

Browse files
authored
Merge pull request#43 from CenterForStatistics-UGent/devel
Devel Version 0.1.9 : permtest added
2 parents76f0cb1 +d058d03 commitee4d92a

19 files changed

+717
-65
lines changed

‎DESCRIPTION‎

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
Package: xnet
22
Type: Package
33
Title: Two-Step Kernel Ridge Regression for Network Predictions
4-
Version: 0.1.8
4+
Version: 0.1.9
55
Authors@R: c(person("Joris","Meys", email = "Joris.Meys@UGent.be", role
66
= c("cre","aut")), person("Michiel", "Stock", email =
77
"Michiel.Stock@UGent.be", role = "aut"))
88
Description: Fit a two-step kernel ridge regression for predicting
99
edges in networks, and carry out cross-validation using
1010
shortcuts for swift and accurate performance assessment
1111
<doi:10.1093/bib/bby095>.
12-
Date: 2019-04-04
12+
Date: 2019-11-05
1313
BugReports: https://github.com/CenterForStatistics-UGent/xnet/issues
1414
URL: https://github.com/CenterForStatistics-UGent/xnet
1515
Depends: R(>= 3.4.0)
@@ -20,20 +20,21 @@ LazyData: true
2020
RoxygenNote: 6.1.1
2121
Suggests: testthat, knitr, rmarkdown, ChemmineR, covr, fmcsR
2222
VignetteBuilder: knitr
23-
Collate: 'Class_linearFilter.R' 'Class_tskrr.R'
24-
'Class_tskrrHeterogenous.R' 'Class_tskrrImpute.R'
25-
'Class_tskrrHeterogenousImpute.R' 'Class_tskrrHomogenous.R'
26-
'Class_tskrrHomogenousImpute.R' 'Class_tskrrTune.R'
27-
'Class_tskrrTuneHeterogenous.R' 'Class_tskrrTuneHomogenous.R'
28-
'all_generics.R' 'as_tuned.R' 'create_grid.R'
23+
Collate: 'Class_linearFilter.R' 'all_generics.R' 'Class_permtest.R'
24+
'Class_tskrr.R' 'Class_tskrrHeterogenous.R'
25+
'Class_tskrrImpute.R' 'Class_tskrrHeterogenousImpute.R'
26+
'Class_tskrrHomogenous.R' 'Class_tskrrHomogenousImpute.R'
27+
'Class_tskrrTune.R' 'Class_tskrrTuneHeterogenous.R'
28+
'Class_tskrrTuneHomogenous.R' 'as_tuned.R' 'create_grid.R'
2929
'data_drugtarget.R' 'data_proteinInteraction.R' 'dim.R'
3030
'eigen2hat.R' 'fitted.R' 'get_loo_fun.R' 'getlooInternal.R'
3131
'getters_linearFilter.R' 'getters_tskrr.R'
3232
'getters_tskrrImpute.R' 'getters_tskrrTune.R' 'hat.R'
33-
'impute_tskrr.R' 'impute_tskrr.fit.R' 'is_symmetric.R'
34-
'labels.R' 'linear_filter.R' 'loo.R' 'looInternal.R' 'loss.R'
35-
'loss_functions.R' 'match_labels.R' 'plot.tskrr.R'
36-
'plot_grid.R' 'predict.R' 'prepare_lambdas.R' 'residuals.R'
37-
'test_input.R' 'test_symmetry.R' 'tskrr.R' 'tskrr.fit.R'
38-
'tune.R' 'update.R' 'valid_dimensions.R' 'valid_labels.R'
39-
'weights.R' 'xnet-package.R'
33+
'impute_tskrr.R' 'impute_tskrr.fit.R' 'internal_helpers.R'
34+
'is_symmetric.R' 'labels.R' 'linear_filter.R' 'loo.R'
35+
'looInternal.R' 'loss.R' 'loss_functions.R' 'match_labels.R'
36+
'permtest.R' 'plot.tskrr.R' 'plot_grid.R' 'predict.R'
37+
'prepare_lambdas.R' 'residuals.R' 'test_input.R'
38+
'test_symmetry.R' 'tskrr.R' 'tskrr.fit.R' 'tune.R' 'update.R'
39+
'valid_dimensions.R' 'valid_labels.R' 'weights.R'
40+
'xnet-package.R'

‎NAMESPACE‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export(eigen2map)
1414
export(eigen2matrix)
1515
export(get_eigen)
1616
export(get_grid)
17+
export(get_kernel)
1718
export(get_loo_fun)
1819
export(get_loss_values)
1920
export(has_imputed_values)
@@ -31,6 +32,7 @@ export(loss_auc)
3132
export(loss_mse)
3233
export(match_labels)
3334
export(na_removed)
35+
export(permtest)
3436
export(plot_grid)
3537
export(residuals)
3638
export(symmetry)
@@ -40,6 +42,7 @@ export(tskrr.fit)
4042
export(update)
4143
export(valid_dimensions)
4244
export(which_imputed)
45+
exportClasses(permtest)
4346
exportClasses(tskrr)
4447
exportClasses(tskrrHeterogenous)
4548
exportClasses(tskrrHeterogenousImpute)
@@ -63,6 +66,7 @@ exportMethods(loo)
6366
exportMethods(loss)
6467
exportMethods(mean)
6568
exportMethods(na_removed)
69+
exportMethods(permtest)
6670
exportMethods(predict)
6771
exportMethods(residuals)
6872
exportMethods(response)
@@ -94,4 +98,7 @@ importFrom(stats,as.dendrogram)
9498
importFrom(stats,as.dist)
9599
importFrom(stats,hclust)
96100
importFrom(stats,order.dendrogram)
101+
importFrom(stats,pnorm)
102+
importFrom(stats,printCoefmat)
103+
importFrom(stats,sd)
97104
importFrom(utils,str)

‎NEWS.md‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
##xnet devel (to become 0.2.0 CRAN release)
2+
3+
###Breaking changes
4+
5+
* For consistency, the`g` matrix in`predict()` now expects the new
6+
nodes to be on the rows.
7+
8+
###New features
9+
10+
###Bug fixes and minor improvements
11+
112
##xnet 0.1.8
213

314
###Breaking changes

‎R/Class_permtest.R‎

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
#' Class permtest
2+
#'
3+
#' This class represents the permutation test outcomes. See also
4+
#' the function \code{\link{permtest}}.
5+
#'
6+
#' @slot orig_loss a numeric value with the original loss of
7+
#' the model.
8+
#' @slot perm_losses a numeric vector with the losses of the
9+
#' different permutations.
10+
#' @slot n the number of permutations
11+
#' @slot loss_function the function used to calculate the losses.
12+
#' @slot exclusion a character value indicating the exclusion
13+
#' setting used for the test
14+
#' @slot replaceby0 a locigal value that indicates whether the
15+
#' exclusion was done by replacing with zero. See also
16+
#' \code{\link{loo}}.
17+
#' @slot permutation a character value that indicats in which
18+
#' kernel matrices were permuted.
19+
#' @slot pval a p value indicating how likely it is to find a
20+
#' smaller loss than the one of the model based on a normal
21+
#' approximation.
22+
#'
23+
#' @seealso
24+
#' * the function \code{\link{permtest}} for the actual test.
25+
#' * the function \code{\link{loo}} for the leave one out
26+
#' procedures
27+
#' * the function \code{\link{t.test}} for the actual test
28+
#' @md
29+
#'
30+
#' @include all_generics.R
31+
#'
32+
#' @rdname permtest-class
33+
#' @name permtest-class
34+
#' @exportClass permtest
35+
setClass("permtest",
36+
slots= c(orig_loss="numeric",
37+
perm_losses="numeric",
38+
n="numeric",
39+
loss_function="function",
40+
exclusion="character",
41+
replaceby0="logical",
42+
permutation="character",
43+
pval="numeric"))
44+
45+
# Validity testing
46+
validPermtest<-function(object){
47+
if(length(object@orig_loss)!=1)
48+
return("orig_loss should be a single value.")
49+
if(length(object@pval)!=1)
50+
return("pval should be a single value.")
51+
if(length(object@perm_losses)!=object@n)
52+
return("perm_losses doesn't have a length of n.")
53+
54+
}
55+
56+
setValidity("permtest",validPermtest)
57+
58+
# Show method
59+
print.permtest<-function(x,digits= max(3L, getOption("digits")-3)){
60+
61+
if(identical(x@loss_function,loss_mse))
62+
loss_name<-"Mean Squared Error (loss_mse)"
63+
elseif(identical(x@loss_function,loss_auc))
64+
loss_name<-"Area under curve (loss_auc)"
65+
else
66+
loss_name<-"custom function by user"
67+
68+
excl<-x@exclusion
69+
if(x@replaceby0)excl<- paste(excl,"(values replaced by 0)")
70+
71+
loss_name<- paste(" Loss function:",loss_name,"\n")
72+
excl<- paste(" Exclusion:",excl,"\n")
73+
perm<- paste(" Permutation:",x@permutation,"\n")
74+
75+
avg<- mean(x@perm_losses)
76+
sd<- sd(x@perm_losses)
77+
# results
78+
res<-matrix(
79+
c(x@orig_loss,avg,sd,x@pval),
80+
nrow=1,
81+
dimnames=list(
82+
"",
83+
c("Loss","Average loss","sd","Pr(X < Loss)")
84+
)
85+
)
86+
87+
88+
89+
cat("\n")
90+
cat(strwrap("Permutation test for a tskrr model",prefix="\t"))
91+
cat("\n")
92+
cat("Using:\n")
93+
cat(loss_name)
94+
cat(excl)
95+
cat(perm)
96+
cat("\n")
97+
printCoefmat(res,digits=digits)
98+
cat("\n")
99+
cat("P value is approximated based on a normal distribution.\n")
100+
101+
}
102+
103+
setMethod("show",
104+
"permtest",
105+
function(object){
106+
print.permtest(object)
107+
})

‎R/all_generics.R‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# Classes needed for generics
2+
setOldClass("htest")
3+
14
# All Generics
25

36
#' @rdname get_loo_fun
@@ -18,6 +21,11 @@ setGeneric("lambda",
1821
setGeneric("tune",
1922
function(x,...) standardGeneric("tune"))
2023

24+
#' @rdname permtest
25+
#' @export
26+
setGeneric("permtest",
27+
function(x,...) standardGeneric("permtest"))
28+
2129
#' @rdname update
2230
#' @export
2331
setGeneric("update")

‎R/getters_tskrr.R‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,10 @@ get_eigen <- function(x, which = c('row', 'column')){
107107
}
108108

109109
#' @rdname getters-tskrr
110-
#' @aliasesget_kernelmatrix
111-
#' @return For \code{get_kernelmatrix} the original kernel matrix
110+
#' @aliasesget_kernel
111+
#' @return For \code{get_kernel} the original kernel matrix
112112
#' for the rows or columns.
113+
#' @export
113114
get_kernel<-function(x,which= c('row','column')){
114115

115116
which<- match.arg(which)

‎R/internal_helpers.R‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Internal functions
2+
3+
## Check whether something is a whole number
4+
5+
is_whole_number<-function(x){
6+
if(is.integer(x)){
7+
TRUE
8+
}elseif(is.numeric(x)){
9+
if((x%%1)==0 ){
10+
TRUE
11+
}else {
12+
FALSE
13+
}
14+
}else {
15+
FALSE
16+
}
17+
}
18+
19+
is_whole_positive<-function(x){
20+
if(is_whole_number(x)&&x>=0)TRUEelseFALSE
21+
}
22+

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp