predprob: Conditional class probability prediction for SKDA

Description Usage Arguments Value Author(s) References See Also Examples

Description

This function predicts the conditional class probability for the sparse (multicategory) kernel discriminant analysis (skda).

Usage

1
predprob(x, y, lam, xnew, method = "Bayes")

Arguments

x

a matrix ( n X p ) that contains predictors.

y

a vector that contains the categorical response coded as 1, 2, ..., K.

lam

a length-K vector of inverse smoothing bandwidths.

xnew

a matrix (with p columns) that contains predictors of new observations.

method

method (mle or Bayes) to be used in the KDA classifier.

Value

phat

a matrix (with K columns) that contains predicted conditional class probabilities.

Author(s)

L. A. Stefanski, Y. Wu, and K. White

References

L. A. Stefanski, Y. Wu, and K. White (2013) Variable selection in nonparametric classification via measurement error model selection likelihoods Journal of the American Statistical Association, ??, ???-???.

See Also

skda, cvskda

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
        # a binary example
          rm(list=ls())
          n=200
          p=20
          r=0.8
          x=matrix(rnorm(n*p,mean=0,sd=1),n,p)
          y=rbinom(n,1,0.5)
          x[,3]=x[,3]+(2*y-1)*r
          x[,11]=x[,11]+(2*y-1)*r

          y=y+1

          ind1=which(y>1.5)
          ind0=which(y<1.5)
          plot(-4:4, -4:4, type = "n")
          points(x[ind1, 3], x[ind1,11],col="blue")
          points(x[ind0, 3], x[ind0,11],col="red")

          lam=skda(x,y,3)$lam
         

          xtest=matrix(rnorm(10*n*p,mean=0,sd=1),10*n,p)
          ytest=rbinom(10*n,1,0.5)
          xtest[,3]=xtest[,3]+(2*ytest-1)*r
          xtest[,11]=xtest[,11]+(2*ytest-1)*r
          ytest=ytest+1

          ptesthat=predprob(x,y,lam, xtest)
          ytesthat=apply(ptesthat, 1,which.max)
          error=sum(abs(ytesthat-ytest)>0.5)
          error/length(ytest)





        # a three-class example
          rm(list=ls())
          n=200
          p=20
          r=2
          x=matrix(rnorm(n*p,mean=0,sd=1),n,p)
          y=ceiling(runif(n,0,3))
          thetas=c(0, 2*pi/3, 4*pi/3)
          x[,3]=x[,3]+r*cos(thetas[y])
          x[,11]=x[,11]+r*sin(thetas[y])

          ind1=which(y==1)
          ind2=which(y==2)
          ind3=which(y==3)

          plot(-6:6, -6:6, type = "n")
          points(x[ind1, 3], x[ind1,11],col="blue")
          points(x[ind2, 3], x[ind2,11],col="red")
          points(x[ind3, 3], x[ind3,11],col="black")



          lam=skda(x,y,3)$lam
         

          xtest=matrix(rnorm(10*n*p,mean=0,sd=1),10*n,p)
          ytest=ceiling(runif(10*n,0,3))
          xtest[,3]=xtest[,3]+r*cos(thetas[ytest])
          xtest[,11]=xtest[,11]+r*sin(thetas[ytest])


          ptesthat=predprob(x,y,lam, xtest)
          ytesthat=apply(ptesthat, 1,which.max)
          error=sum(abs(ytesthat-ytest)>0.5)
          error/length(ytest)


Search within the skda package
Search all R packages, documentation and source code

Questions? Problems? Suggestions? or email at ian@mutexlabs.com.

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.