Please need help to finalize my code

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Please need help to finalize my code

Ablaye Ngalaba
Good evening dear administrators,
It is with pleasure that I am writing to you to ask for help to finalize my
R programming algorithm.

Indeed, I attach this note to my code which deals with a case of
independence test statistic . My request is to introduce the kernels using
the functional data for this same code that I am sending you. So I list the
lines for which we need to introduce the functional data using the kernels
below.

First of all for this code we need to use the functional data. I have
numbered the lines myself from the original code to give some indication
about the lines of code to introduce the kernel.
1)Centering of redescription function phi(xi) (just use the kernel)
2)this function centers the functional data phi(xi) (just use the kernel)
3)phi(x1) (or kernel k( ., .) )
5)Even here the kernel with the functional data is used.
7)return the kernel
28) kernel dimension
29) kernel dimension
30)kernel dimension
73) redescription function phi(xi) or the kernel k(. , .)
74)redescription function phi(yi) or the kernel k(. , .)
76)redescription function phi(xbar) or the kernel k(. , .)
77)redescription function phi(xjhbar) or the kernel k(. , .)
82)redescription function phi(xi) or the kernel k(. , .) introduced instead
of x
84)redescription function phi(xjhbar) or the kernel k(. , .)
89)w= redescription function phi(xbar) or the kernel k(. , .)
120) we center the redescription function phi(xi) or the kernel k(. , .)
121)Vn is a kernel function, so we use ph(xi) or the kernel k(. , , .)
126)centering of the redescription function phi(xji) or the kernel k(. , .)
127)Vij is computed using redescription function phi(xi) or the kernel k(.
, .) instead of X.
130)centering redescription function phi(Xkl) or the kernel k(. , .)
131)Vijkl always using the kernel function as precedent
132)Vkl always using the kernel function as precedent

 I look forward to your help and sincere request.


                             Yours sincerely

library(MASS)

1 CenteringV<-function(X,Ms,n){
2 # this function centers the data of X
3 X1=X*0
4 for (i in 1:n){
5 X1[i,]=X[i,]-Ms
6 }
7 return(X1)
8 }


9 # Function N°2
10 SqrtMatrix0<-function(M) {
11 # This function allows us to compute the square root of a matrix
12 # using the decomposition M=PDQ where Q is the inverse of P
13 # here negative eigenvalues are replaced by zero
 14 a=eigen(M,TRUE)
 15 b=a$values
 16 b[b<0]=0
 17 c=a$vectors
18 d=diag(sqrt(b))
 19 b=solve(c)
20 a=c%*%d%*%b
21 return(a)
22 }


23 # declaration of parameters
24 m1=0.01 # alpha value (1% risk)
25 m2=0.05 # alpha value (5% risk)
26 m3=0.1 # alpha value (10% risk)
27 nbrefoissim=100 # # times the program is running
28 p=3 #dimension of variable X
29 q=3 #dimension of variable Y
30 R=c(5,4,3);# Number of partition of each component of variable Y
31 if(length(R) != q) stop("The size of R must be equal to q")
32 n=25 # Sample size
33 N=c(25,50,100,200,300,400,500,1000) #different sample sizes
34 #N=c(25,50) #different sample sizes
35 pc1=rep(0.100)
36 K=0
37 MV=matrix(0,nr=8,nc=4)
38 dimnames(MV)[[2]]=c("n","r1%","r5%","r10%")


39 #Beginning of the program

 40 for (n in N){


41 l1=0 # initialization of the value to calculate the test level at 1%.
42 l2=0 # initialization of the value to calculate the test level at 5%.
43 l3=0 # initialization of the value to calculate the test level at 10%.

44 # Creation of an n11 list containing the sizes of the different groups
45 n11=list()
46 for (i in 1:q){
47 n11[[i]]=rep(as.integer(n/R[i]),R[i])
48 n11[[i]][R[i]]=n-((R[i]-1)*n11[[i]][1])
49 }


50 # Creation of lists P11 and P12 which contain the probabilities and
51 # the inverses of the empirical probabilities of the different groups
respectively

52 P11=list()
53 P12=list()
54 for (i in 1:q){
55 P11[[i]]=n11[[i]]/n
56 P12[[i]]=n/n11[[i]

57 }

58 # creation of a list containing the W matrices
59 W=list()
60 for (i in 1:q){
61 w=matrix(0,n,R[i])
62 w[1:n11[[i]][1],1]=1
63 if (R[i]>1){
64 for (j in 2:R[i]){
65 s1=sum(n11[[i]][1:(j-1)])
66 w[(1+s1):(s1+n11[[i]][j]),j]=1
67 }}
68 W[[i]]=w
69 }

70 for (i1 in 1:nbrefoissim){

71 # data generation
72 VA1=mvrnorm(n,rep(0,(p+q)),diag((p+q)))
73 X=VA1[,1:p]
74 Y=VA1[,(p+1):(p+q)]

75 # Xbar calculation
76 Xbar=colMeans(X)

77 # Calculation of Xjh bar
78 Xjhbar=list()
79 for (i in 1:q){
80 w=matrix(0,R[i],p)
81 for (j in 1:R[i]){
82 w[j,]=colSums(W[[i]][,j]*X)/n11[[i]][j]
83 }
84 Xjhbar[[i]]=w
85 }

86 #calculation of TO jh

87 TO.jh=list()
88 for (i in 1:q){
89 w=Xjhbar[[i]]
90 to=w*0
91 for (j in 1:R[i]){
92 to[j,]=w[j,]-Xbar
93 }
94 TO.jh[[i]]=to
95 }

96 #calculation of Lamda J

97 Lamda=matrix(0,p,p)
98 for (i in 1:q){
99 to=TO.jh[[i]]
100 w=matrix(0,p,p)
101 for (j in 1:R[i]){
102 w=w+(P11[[i]][j]*(to[j,]%*%t(to[j,])))
103 }
104 Lamda=Lamda+w
105 }

106 tr1=n*sum(diag(Lamda))

107 # Gamma Calculation

108 GGamma=matrix(0,p*sum(R),p*sum(R))
109 PGamma=kronecker(diag(P12[[1]]),diag(p))
110 Ifin=p*R [1]
111 GGamma[1:Ifin,1:Ifin]=PGamma
112 for (i in 2:q){
113 PGamma=kronecker(diag(P12[[i]]),diag(p))
114 Idebut=((p*sum(R[1:(i-1)]))+1)
115 Ifin=(p*sum(R[1:i]))
116 GGamma [Idebut:Ifin,Idebut:Ifin]=PGamma
117 }

118 #Sigma calculation

119 # Calculation of Vn
120 X1=CenteringV(X,Xbar,n)
121 Vn=t(X1)%*%X1/n

122 ## Construction of Sigma
123 GSigma=matrix(0,p*sum(R),p*sum(R))
124 for (i in 1:q ){
125 for (j in 1:R[i] ){
126 Xij=CenteringV(X,Xjhbar[[i]][j,],n)
127 Vij=t(W[[i]][,j]*Xij)%*%Xij/n11[[i]][j]

128 for (k in 1:q ){
129 for (l in 1:R[k]){

130 Xkl=CenteringV(X,Xjhbar[[k]][l,],n)
131 Vijkl=t(W[[i]][,j]*Xij)%*%(W[[k]][,l]*Xkl)/n

132 Vkl=t(W[[k]][,l]*Xkl)%*%Xkl/n11[[k]][l]
133 if (i==1) Idebut=((j-1)*p)+1 else Idebut=((sum(R[1:(i-1)])+j-1)*p)+1
134 if (i==1) Idebut1=(j*p) else Idebut1=((sum(R[1:(i-1)])+j)*p)
135 if (k==1) Ifin=((l-1)*p)+1 else Ifin=((sum(R[1:(k-1)])+l-1)*p)+1
136 if (k==1) Ifin1=(l*p) else Ifin1=((sum(R[1:(k-1)])+l)*p)

137
GSigma[Idebut:Idebut1,Ifin:Ifin1]=Vijkl+(P11[[i]][j]*P11[[k]][l]*(Vn-Vij-Vkl))
138 }
139 }
140 }
141 }


141 # Determinations of the eigenvalues of sigma epsilon
142 pa=SqrtMatrix0(GSigma)
143 mq= pa %*% GGamma %*% pa
144 u=Re(eigen(mq)$values)


145 # determination of degree of freedom and value c noted va
146 dl=(sum(u)^2)/(sum(u^2))
147 va=(sum(u^2))/(sum(u))
148 pc=1-pchisq(tr1/va, df= dl)
149 pc1[i1]=pc

150 # Test of the value obtained
151 if (pc>m1) d1=0 else d1=1
152 if (pc>m2) d2=0 else d2=1
153 if (pc>m3) d3=0 else d3=1
154 l1=l1+d1
155 l2=l2+d2
156 l3=l3+d3
157 }
158 K=K+1
159 MV [K,1]=n
160 MV [K,2]=l1/number of timessim
161 MV [K,3]=l2/number of timessim
162 MV[K,4]=l3/number of timessim
163 }






l

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Re: Please need help to finalize my code

PIKAL Petr
Hi.

Maybe you will get better answers, but from your code it seems to me that you are treating R as C or other similar language which is not optimal. Considering your first 9 lines, it could be changed either to

CenteringV <- function(X, Ms, n) X-Ms

or you probably could use functions sweep or scale.
Your other code is beyond my experience, sorry.

Cheers
Petr

> -----Original Message-----
> From: R-help <[hidden email]> On Behalf Of Ablaye Ngalaba
> Sent: Saturday, October 10, 2020 9:24 PM
> To: [hidden email]
> Subject: [R] Please need help to finalize my code
>
> Good evening dear administrators,
> It is with pleasure that I am writing to you to ask for help to finalize my R
> programming algorithm.
>
> Indeed, I attach this note to my code which deals with a case of independence
> test statistic . My request is to introduce the kernels using the functional data
> for this same code that I am sending you. So I list the lines for which we need
> to introduce the functional data using the kernels below.
>
> First of all for this code we need to use the functional data. I have numbered
> the lines myself from the original code to give some indication about the lines
> of code to introduce the kernel.
> 1)Centering of redescription function phi(xi) (just use the kernel) 2)this
> function centers the functional data phi(xi) (just use the kernel)
> 3)phi(x1) (or kernel k( ., .) )
> 5)Even here the kernel with the functional data is used.
> 7)return the kernel
> 28) kernel dimension
> 29) kernel dimension
> 30)kernel dimension
> 73) redescription function phi(xi) or the kernel k(. , .) 74)redescription function
> phi(yi) or the kernel k(. , .) 76)redescription function phi(xbar) or the kernel k(.
> , .) 77)redescription function phi(xjhbar) or the kernel k(. , .) 82)redescription
> function phi(xi) or the kernel k(. , .) introduced instead of x 84)redescription
> function phi(xjhbar) or the kernel k(. , .) 89)w= redescription function
> phi(xbar) or the kernel k(. , .)
> 120) we center the redescription function phi(xi) or the kernel k(. , .) 121)Vn is
> a kernel function, so we use ph(xi) or the kernel k(. , , .) 126)centering of the
> redescription function phi(xji) or the kernel k(. , .) 127)Vij is computed using
> redescription function phi(xi) or the kernel k(.
> , .) instead of X.
> 130)centering redescription function phi(Xkl) or the kernel k(. , .) 131)Vijkl
> always using the kernel function as precedent 132)Vkl always using the kernel
> function as precedent
>
>  I look forward to your help and sincere request.
>
>
>                              Yours sincerely
>
> library(MASS)
>
> 1 CenteringV<-function(X,Ms,n){
> 2 # this function centers the data of X
> 3 X1=X*0
> 4 for (i in 1:n){
> 5 X1[i,]=X[i,]-Ms
> 6 }
> 7 return(X1)
> 8 }
>
>
> 9 # Function N°2
> 10 SqrtMatrix0<-function(M) {
> 11 # This function allows us to compute the square root of a matrix
> 12 # using the decomposition M=PDQ where Q is the inverse of P
> 13 # here negative eigenvalues are replaced by zero
>  14 a=eigen(M,TRUE)
>  15 b=a$values
>  16 b[b<0]=0
>  17 c=a$vectors
> 18 d=diag(sqrt(b))
>  19 b=solve(c)
> 20 a=c%*%d%*%b
> 21 return(a)
> 22 }
>
>
> 23 # declaration of parameters
> 24 m1=0.01 # alpha value (1% risk)
> 25 m2=0.05 # alpha value (5% risk)
> 26 m3=0.1 # alpha value (10% risk)
> 27 nbrefoissim=100 # # times the program is running
> 28 p=3 #dimension of variable X
> 29 q=3 #dimension of variable Y
> 30 R=c(5,4,3);# Number of partition of each component of variable Y
> 31 if(length(R) != q) stop("The size of R must be equal to q")
> 32 n=25 # Sample size
> 33 N=c(25,50,100,200,300,400,500,1000) #different sample sizes
> 34 #N=c(25,50) #different sample sizes
> 35 pc1=rep(0.100)
> 36 K=0
> 37 MV=matrix(0,nr=8,nc=4)
> 38 dimnames(MV)[[2]]=c("n","r1%","r5%","r10%")
>
>
> 39 #Beginning of the program
>
>  40 for (n in N){
>
>
> 41 l1=0 # initialization of the value to calculate the test level at 1%.
> 42 l2=0 # initialization of the value to calculate the test level at 5%.
> 43 l3=0 # initialization of the value to calculate the test level at 10%.
>
> 44 # Creation of an n11 list containing the sizes of the different groups
> 45 n11=list()
> 46 for (i in 1:q){
> 47 n11[[i]]=rep(as.integer(n/R[i]),R[i])
> 48 n11[[i]][R[i]]=n-((R[i]-1)*n11[[i]][1])
> 49 }
>
>
> 50 # Creation of lists P11 and P12 which contain the probabilities and
> 51 # the inverses of the empirical probabilities of the different groups
> respectively
>
> 52 P11=list()
> 53 P12=list()
> 54 for (i in 1:q){
> 55 P11[[i]]=n11[[i]]/n
> 56 P12[[i]]=n/n11[[i]
>
> 57 }
>
> 58 # creation of a list containing the W matrices
> 59 W=list()
> 60 for (i in 1:q){
> 61 w=matrix(0,n,R[i])
> 62 w[1:n11[[i]][1],1]=1
> 63 if (R[i]>1){
> 64 for (j in 2:R[i]){
> 65 s1=sum(n11[[i]][1:(j-1)])
> 66 w[(1+s1):(s1+n11[[i]][j]),j]=1
> 67 }}
> 68 W[[i]]=w
> 69 }
>
> 70 for (i1 in 1:nbrefoissim){
>
> 71 # data generation
> 72 VA1=mvrnorm(n,rep(0,(p+q)),diag((p+q)))
> 73 X=VA1[,1:p]
> 74 Y=VA1[,(p+1):(p+q)]
>
> 75 # Xbar calculation
> 76 Xbar=colMeans(X)
>
> 77 # Calculation of Xjh bar
> 78 Xjhbar=list()
> 79 for (i in 1:q){
> 80 w=matrix(0,R[i],p)
> 81 for (j in 1:R[i]){
> 82 w[j,]=colSums(W[[i]][,j]*X)/n11[[i]][j]
> 83 }
> 84 Xjhbar[[i]]=w
> 85 }
>
> 86 #calculation of TO jh
>
> 87 TO.jh=list()
> 88 for (i in 1:q){
> 89 w=Xjhbar[[i]]
> 90 to=w*0
> 91 for (j in 1:R[i]){
> 92 to[j,]=w[j,]-Xbar
> 93 }
> 94 TO.jh[[i]]=to
> 95 }
>
> 96 #calculation of Lamda J
>
> 97 Lamda=matrix(0,p,p)
> 98 for (i in 1:q){
> 99 to=TO.jh[[i]]
> 100 w=matrix(0,p,p)
> 101 for (j in 1:R[i]){
> 102 w=w+(P11[[i]][j]*(to[j,]%*%t(to[j,])))
> 103 }
> 104 Lamda=Lamda+w
> 105 }
>
> 106 tr1=n*sum(diag(Lamda))
>
> 107 # Gamma Calculation
>
> 108 GGamma=matrix(0,p*sum(R),p*sum(R))
> 109 PGamma=kronecker(diag(P12[[1]]),diag(p))
> 110 Ifin=p*R [1]
> 111 GGamma[1:Ifin,1:Ifin]=PGamma
> 112 for (i in 2:q){
> 113 PGamma=kronecker(diag(P12[[i]]),diag(p))
> 114 Idebut=((p*sum(R[1:(i-1)]))+1)
> 115 Ifin=(p*sum(R[1:i]))
> 116 GGamma [Idebut:Ifin,Idebut:Ifin]=PGamma
> 117 }
>
> 118 #Sigma calculation
>
> 119 # Calculation of Vn
> 120 X1=CenteringV(X,Xbar,n)
> 121 Vn=t(X1)%*%X1/n
>
> 122 ## Construction of Sigma
> 123 GSigma=matrix(0,p*sum(R),p*sum(R))
> 124 for (i in 1:q ){
> 125 for (j in 1:R[i] ){
> 126 Xij=CenteringV(X,Xjhbar[[i]][j,],n)
> 127 Vij=t(W[[i]][,j]*Xij)%*%Xij/n11[[i]][j]
>
> 128 for (k in 1:q ){
> 129 for (l in 1:R[k]){
>
> 130 Xkl=CenteringV(X,Xjhbar[[k]][l,],n)
> 131 Vijkl=t(W[[i]][,j]*Xij)%*%(W[[k]][,l]*Xkl)/n
>
> 132 Vkl=t(W[[k]][,l]*Xkl)%*%Xkl/n11[[k]][l]
> 133 if (i==1) Idebut=((j-1)*p)+1 else Idebut=((sum(R[1:(i-1)])+j-1)*p)+1
> 134 if (i==1) Idebut1=(j*p) else Idebut1=((sum(R[1:(i-1)])+j)*p)
> 135 if (k==1) Ifin=((l-1)*p)+1 else Ifin=((sum(R[1:(k-1)])+l-1)*p)+1
> 136 if (k==1) Ifin1=(l*p) else Ifin1=((sum(R[1:(k-1)])+l)*p)
>
> 137
> GSigma[Idebut:Idebut1,Ifin:Ifin1]=Vijkl+(P11[[i]][j]*P11[[k]][l]*(Vn-Vij-Vkl))
> 138 }
> 139 }
> 140 }
> 141 }
>
>
> 141 # Determinations of the eigenvalues of sigma epsilon
> 142 pa=SqrtMatrix0(GSigma)
> 143 mq= pa %*% GGamma %*% pa
> 144 u=Re(eigen(mq)$values)
>
>
> 145 # determination of degree of freedom and value c noted va
> 146 dl=(sum(u)^2)/(sum(u^2))
> 147 va=(sum(u^2))/(sum(u))
> 148 pc=1-pchisq(tr1/va, df= dl)
> 149 pc1[i1]=pc
>
> 150 # Test of the value obtained
> 151 if (pc>m1) d1=0 else d1=1
> 152 if (pc>m2) d2=0 else d2=1
> 153 if (pc>m3) d3=0 else d3=1
> 154 l1=l1+d1
> 155 l2=l2+d2
> 156 l3=l3+d3
> 157 }
> 158 K=K+1
> 159 MV [K,1]=n
> 160 MV [K,2]=l1/number of timessim
> 161 MV [K,3]=l2/number of timessim
> 162 MV[K,4]=l3/number of timessim
> 163 }
>
>
>
>
>
>
> l
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-
> guide.html
> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Re: Please need help to finalize my code

PIKAL Petr
Hm. Google tells me that kernel function is in stats package which comes with base installation and is invoked when you start R.

 

search()

[1] ".GlobalEnv"        "package:stats"     "package:graphics"

[4] "package:grDevices" "package:utils"     "package:datasets"

[7] "package:methods"   "Autoloads"         "package:base"    

 

And BTW, keep your posts on R-help, others could give you more relevant answers.

 

Cheers

Petr

 

From: Ablaye Ngalaba <[hidden email]>
Sent: Monday, October 12, 2020 7:58 PM
To: PIKAL Petr <[hidden email]>
Subject: Re: [R] Please need help to finalize my code

 

Hello.
Thank you for your response.
I would like to ask you the name of the package to install when you want to use the kernels

 

Le lun. 12 oct. 2020 à 08:28, PIKAL Petr <[hidden email] <mailto:[hidden email]> > a écrit :

Hi.

Maybe you will get better answers, but from your code it seems to me that you are treating R as C or other similar language which is not optimal. Considering your first 9 lines, it could be changed either to

CenteringV <- function(X, Ms, n) X-Ms

or you probably could use functions sweep or scale.
Your other code is beyond my experience, sorry.

Cheers
Petr

> -----Original Message-----
> From: R-help <[hidden email]> On Behalf Of Ablaye Ngalaba
> Sent: Saturday, October 10, 2020 9:24 PM
> To: [hidden email] <mailto:[hidden email]>
> Subject: [R] Please need help to finalize my code
>
> Good evening dear administrators,
> It is with pleasure that I am writing to you to ask for help to finalize my R
> programming algorithm.
>
> Indeed, I attach this note to my code which deals with a case of independence
> test statistic . My request is to introduce the kernels using the functional data
> for this same code that I am sending you. So I list the lines for which we need
> to introduce the functional data using the kernels below.
>
> First of all for this code we need to use the functional data. I have numbered
> the lines myself from the original code to give some indication about the lines
> of code to introduce the kernel.
> 1)Centering of redescription function phi(xi) (just use the kernel) 2)this
> function centers the functional data phi(xi) (just use the kernel)
> 3)phi(x1) (or kernel k( ., .) )
> 5)Even here the kernel with the functional data is used.
> 7)return the kernel
> 28) kernel dimension
> 29) kernel dimension
> 30)kernel dimension
> 73) redescription function phi(xi) or the kernel k(. , .) 74)redescription function
> phi(yi) or the kernel k(. , .) 76)redescription function phi(xbar) or the kernel k(.
> , .) 77)redescription function phi(xjhbar) or the kernel k(. , .) 82)redescription
> function phi(xi) or the kernel k(. , .) introduced instead of x 84)redescription
> function phi(xjhbar) or the kernel k(. , .) 89)w= redescription function
> phi(xbar) or the kernel k(. , .)
> 120) we center the redescription function phi(xi) or the kernel k(. , .) 121)Vn is
> a kernel function, so we use ph(xi) or the kernel k(. , , .) 126)centering of the
> redescription function phi(xji) or the kernel k(. , .) 127)Vij is computed using
> redescription function phi(xi) or the kernel k(.
> , .) instead of X.
> 130)centering redescription function phi(Xkl) or the kernel k(. , .) 131)Vijkl
> always using the kernel function as precedent 132)Vkl always using the kernel
> function as precedent
>
>  I look forward to your help and sincere request.
>
>
>                              Yours sincerely
>
> library(MASS)
>
> 1 CenteringV<-function(X,Ms,n){
> 2 # this function centers the data of X
> 3 X1=X*0
> 4 for (i in 1:n){
> 5 X1[i,]=X[i,]-Ms
> 6 }
> 7 return(X1)
> 8 }
>
>
> 9 # Function N°2
> 10 SqrtMatrix0<-function(M) {
> 11 # This function allows us to compute the square root of a matrix
> 12 # using the decomposition M=PDQ where Q is the inverse of P
> 13 # here negative eigenvalues are replaced by zero
>  14 a=eigen(M,TRUE)
>  15 b=a$values
>  16 b[b<0]=0
>  17 c=a$vectors
> 18 d=diag(sqrt(b))
>  19 b=solve(c)
> 20 a=c%*%d%*%b
> 21 return(a)
> 22 }
>
>
> 23 # declaration of parameters
> 24 m1=0.01 # alpha value (1% risk)
> 25 m2=0.05 # alpha value (5% risk)
> 26 m3=0.1 # alpha value (10% risk)
> 27 nbrefoissim=100 # # times the program is running
> 28 p=3 #dimension of variable X
> 29 q=3 #dimension of variable Y
> 30 R=c(5,4,3);# Number of partition of each component of variable Y
> 31 if(length(R) != q) stop("The size of R must be equal to q")
> 32 n=25 # Sample size
> 33 N=c(25,50,100,200,300,400,500,1000) #different sample sizes
> 34 #N=c(25,50) #different sample sizes
> 35 pc1=rep(0.100)
> 36 K=0
> 37 MV=matrix(0,nr=8,nc=4)
> 38 dimnames(MV)[[2]]=c("n","r1%","r5%","r10%")
>
>
> 39 #Beginning of the program
>
>  40 for (n in N){
>
>
> 41 l1=0 # initialization of the value to calculate the test level at 1%.
> 42 l2=0 # initialization of the value to calculate the test level at 5%.
> 43 l3=0 # initialization of the value to calculate the test level at 10%.
>
> 44 # Creation of an n11 list containing the sizes of the different groups
> 45 n11=list()
> 46 for (i in 1:q){
> 47 n11[[i]]=rep(as.integer(n/R[i]),R[i])
> 48 n11[[i]][R[i]]=n-((R[i]-1)*n11[[i]][1])
> 49 }
>
>
> 50 # Creation of lists P11 and P12 which contain the probabilities and
> 51 # the inverses of the empirical probabilities of the different groups
> respectively
>
> 52 P11=list()
> 53 P12=list()
> 54 for (i in 1:q){
> 55 P11[[i]]=n11[[i]]/n
> 56 P12[[i]]=n/n11[[i]
>
> 57 }
>
> 58 # creation of a list containing the W matrices
> 59 W=list()
> 60 for (i in 1:q){
> 61 w=matrix(0,n,R[i])
> 62 w[1:n11[[i]][1],1]=1
> 63 if (R[i]>1){
> 64 for (j in 2:R[i]){
> 65 s1=sum(n11[[i]][1:(j-1)])
> 66 w[(1+s1):(s1+n11[[i]][j]),j]=1
> 67 }}
> 68 W[[i]]=w
> 69 }
>
> 70 for (i1 in 1:nbrefoissim){
>
> 71 # data generation
> 72 VA1=mvrnorm(n,rep(0,(p+q)),diag((p+q)))
> 73 X=VA1[,1:p]
> 74 Y=VA1[,(p+1):(p+q)]
>
> 75 # Xbar calculation
> 76 Xbar=colMeans(X)
>
> 77 # Calculation of Xjh bar
> 78 Xjhbar=list()
> 79 for (i in 1:q){
> 80 w=matrix(0,R[i],p)
> 81 for (j in 1:R[i]){
> 82 w[j,]=colSums(W[[i]][,j]*X)/n11[[i]][j]
> 83 }
> 84 Xjhbar[[i]]=w
> 85 }
>
> 86 #calculation of TO jh
>
> 87 TO.jh=list()
> 88 for (i in 1:q){
> 89 w=Xjhbar[[i]]
> 90 to=w*0
> 91 for (j in 1:R[i]){
> 92 to[j,]=w[j,]-Xbar
> 93 }
> 94 TO.jh[[i]]=to
> 95 }
>
> 96 #calculation of Lamda J
>
> 97 Lamda=matrix(0,p,p)
> 98 for (i in 1:q){
> 99 to=TO.jh[[i]]
> 100 w=matrix(0,p,p)
> 101 for (j in 1:R[i]){
> 102 w=w+(P11[[i]][j]*(to[j,]%*%t(to[j,])))
> 103 }
> 104 Lamda=Lamda+w
> 105 }
>
> 106 tr1=n*sum(diag(Lamda))
>
> 107 # Gamma Calculation
>
> 108 GGamma=matrix(0,p*sum(R),p*sum(R))
> 109 PGamma=kronecker(diag(P12[[1]]),diag(p))
> 110 Ifin=p*R [1]
> 111 GGamma[1:Ifin,1:Ifin]=PGamma
> 112 for (i in 2:q){
> 113 PGamma=kronecker(diag(P12[[i]]),diag(p))
> 114 Idebut=((p*sum(R[1:(i-1)]))+1)
> 115 Ifin=(p*sum(R[1:i]))
> 116 GGamma [Idebut:Ifin,Idebut:Ifin]=PGamma
> 117 }
>
> 118 #Sigma calculation
>
> 119 # Calculation of Vn
> 120 X1=CenteringV(X,Xbar,n)
> 121 Vn=t(X1)%*%X1/n
>
> 122 ## Construction of Sigma
> 123 GSigma=matrix(0,p*sum(R),p*sum(R))
> 124 for (i in 1:q ){
> 125 for (j in 1:R[i] ){
> 126 Xij=CenteringV(X,Xjhbar[[i]][j,],n)
> 127 Vij=t(W[[i]][,j]*Xij)%*%Xij/n11[[i]][j]
>
> 128 for (k in 1:q ){
> 129 for (l in 1:R[k]){
>
> 130 Xkl=CenteringV(X,Xjhbar[[k]][l,],n)
> 131 Vijkl=t(W[[i]][,j]*Xij)%*%(W[[k]][,l]*Xkl)/n
>
> 132 Vkl=t(W[[k]][,l]*Xkl)%*%Xkl/n11[[k]][l]
> 133 if (i==1) Idebut=((j-1)*p)+1 else Idebut=((sum(R[1:(i-1)])+j-1)*p)+1
> 134 if (i==1) Idebut1=(j*p) else Idebut1=((sum(R[1:(i-1)])+j)*p)
> 135 if (k==1) Ifin=((l-1)*p)+1 else Ifin=((sum(R[1:(k-1)])+l-1)*p)+1
> 136 if (k==1) Ifin1=(l*p) else Ifin1=((sum(R[1:(k-1)])+l)*p)
>
> 137
> GSigma[Idebut:Idebut1,Ifin:Ifin1]=Vijkl+(P11[[i]][j]*P11[[k]][l]*(Vn-Vij-Vkl))
> 138 }
> 139 }
> 140 }
> 141 }
>
>
> 141 # Determinations of the eigenvalues of sigma epsilon
> 142 pa=SqrtMatrix0(GSigma)
> 143 mq= pa %*% GGamma %*% pa
> 144 u=Re(eigen(mq)$values)
>
>
> 145 # determination of degree of freedom and value c noted va
> 146 dl=(sum(u)^2)/(sum(u^2))
> 147 va=(sum(u^2))/(sum(u))
> 148 pc=1-pchisq(tr1/va, df= dl)
> 149 pc1[i1]=pc
>
> 150 # Test of the value obtained
> 151 if (pc>m1) d1=0 else d1=1
> 152 if (pc>m2) d2=0 else d2=1
> 153 if (pc>m3) d3=0 else d3=1
> 154 l1=l1+d1
> 155 l2=l2+d2
> 156 l3=l3+d3
> 157 }
> 158 K=K+1
> 159 MV [K,1]=n
> 160 MV [K,2]=l1/number of timessim
> 161 MV [K,3]=l2/number of timessim
> 162 MV[K,4]=l3/number of timessim
> 163 }
>
>
>
>
>
>
> l
>
>       [[alternative HTML version deleted]]
>
> ______________________________________________
> [hidden email] <mailto:[hidden email]>  mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-
> guide.html
> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Re: Please need help to finalize my code

Richard O'Keefe-2
What do you *mean* "when you want to use the kernels".
WHICH kernels?
Use to do WHAT?
In your browser, visit cran.r-project.org
then select "Packages" from the list on the left.
Then pick the alphabetic list.
Now search for 'kernel'.
You will find dozens of matches.

On Wed, 14 Oct 2020 at 05:15, PIKAL Petr <[hidden email]> wrote:

> Hm. Google tells me that kernel function is in stats package which comes
> with base installation and is invoked when you start R.
>
>
>
> search()
>
> [1] ".GlobalEnv"        "package:stats"     "package:graphics"
>
> [4] "package:grDevices" "package:utils"     "package:datasets"
>
> [7] "package:methods"   "Autoloads"         "package:base"
>
>
>
> And BTW, keep your posts on R-help, others could give you more relevant
> answers.
>
>
>
> Cheers
>
> Petr
>
>
>
> From: Ablaye Ngalaba <[hidden email]>
> Sent: Monday, October 12, 2020 7:58 PM
> To: PIKAL Petr <[hidden email]>
> Subject: Re: [R] Please need help to finalize my code
>
>
>
> Hello.
> Thank you for your response.
> I would like to ask you the name of the package to install when you want
> to use the kernels
>
>
>
> Le lun. 12 oct. 2020 à 08:28, PIKAL Petr <[hidden email] <mailto:
> [hidden email]> > a écrit :
>
> Hi.
>
> Maybe you will get better answers, but from your code it seems to me that
> you are treating R as C or other similar language which is not optimal.
> Considering your first 9 lines, it could be changed either to
>
> CenteringV <- function(X, Ms, n) X-Ms
>
> or you probably could use functions sweep or scale.
> Your other code is beyond my experience, sorry.
>
> Cheers
> Petr
>
> > -----Original Message-----
> > From: R-help <[hidden email]> On Behalf Of Ablaye Ngalaba
> > Sent: Saturday, October 10, 2020 9:24 PM
> > To: [hidden email] <mailto:[hidden email]>
> > Subject: [R] Please need help to finalize my code
> >
> > Good evening dear administrators,
> > It is with pleasure that I am writing to you to ask for help to finalize
> my R
> > programming algorithm.
> >
> > Indeed, I attach this note to my code which deals with a case of
> independence
> > test statistic . My request is to introduce the kernels using the
> functional data
> > for this same code that I am sending you. So I list the lines for which
> we need
> > to introduce the functional data using the kernels below.
> >
> > First of all for this code we need to use the functional data. I have
> numbered
> > the lines myself from the original code to give some indication about
> the lines
> > of code to introduce the kernel.
> > 1)Centering of redescription function phi(xi) (just use the kernel)
> 2)this
> > function centers the functional data phi(xi) (just use the kernel)
> > 3)phi(x1) (or kernel k( ., .) )
> > 5)Even here the kernel with the functional data is used.
> > 7)return the kernel
> > 28) kernel dimension
> > 29) kernel dimension
> > 30)kernel dimension
> > 73) redescription function phi(xi) or the kernel k(. , .)
> 74)redescription function
> > phi(yi) or the kernel k(. , .) 76)redescription function phi(xbar) or
> the kernel k(.
> > , .) 77)redescription function phi(xjhbar) or the kernel k(. , .)
> 82)redescription
> > function phi(xi) or the kernel k(. , .) introduced instead of x
> 84)redescription
> > function phi(xjhbar) or the kernel k(. , .) 89)w= redescription function
> > phi(xbar) or the kernel k(. , .)
> > 120) we center the redescription function phi(xi) or the kernel k(. , .)
> 121)Vn is
> > a kernel function, so we use ph(xi) or the kernel k(. , , .)
> 126)centering of the
> > redescription function phi(xji) or the kernel k(. , .) 127)Vij is
> computed using
> > redescription function phi(xi) or the kernel k(.
> > , .) instead of X.
> > 130)centering redescription function phi(Xkl) or the kernel k(. , .)
> 131)Vijkl
> > always using the kernel function as precedent 132)Vkl always using the
> kernel
> > function as precedent
> >
> >  I look forward to your help and sincere request.
> >
> >
> >                              Yours sincerely
> >
> > library(MASS)
> >
> > 1 CenteringV<-function(X,Ms,n){
> > 2 # this function centers the data of X
> > 3 X1=X*0
> > 4 for (i in 1:n){
> > 5 X1[i,]=X[i,]-Ms
> > 6 }
> > 7 return(X1)
> > 8 }
> >
> >
> > 9 # Function N°2
> > 10 SqrtMatrix0<-function(M) {
> > 11 # This function allows us to compute the square root of a matrix
> > 12 # using the decomposition M=PDQ where Q is the inverse of P
> > 13 # here negative eigenvalues are replaced by zero
> >  14 a=eigen(M,TRUE)
> >  15 b=a$values
> >  16 b[b<0]=0
> >  17 c=a$vectors
> > 18 d=diag(sqrt(b))
> >  19 b=solve(c)
> > 20 a=c%*%d%*%b
> > 21 return(a)
> > 22 }
> >
> >
> > 23 # declaration of parameters
> > 24 m1=0.01 # alpha value (1% risk)
> > 25 m2=0.05 # alpha value (5% risk)
> > 26 m3=0.1 # alpha value (10% risk)
> > 27 nbrefoissim=100 # # times the program is running
> > 28 p=3 #dimension of variable X
> > 29 q=3 #dimension of variable Y
> > 30 R=c(5,4,3);# Number of partition of each component of variable Y
> > 31 if(length(R) != q) stop("The size of R must be equal to q")
> > 32 n=25 # Sample size
> > 33 N=c(25,50,100,200,300,400,500,1000) #different sample sizes
> > 34 #N=c(25,50) #different sample sizes
> > 35 pc1=rep(0.100)
> > 36 K=0
> > 37 MV=matrix(0,nr=8,nc=4)
> > 38 dimnames(MV)[[2]]=c("n","r1%","r5%","r10%")
> >
> >
> > 39 #Beginning of the program
> >
> >  40 for (n in N){
> >
> >
> > 41 l1=0 # initialization of the value to calculate the test level at 1%.
> > 42 l2=0 # initialization of the value to calculate the test level at 5%.
> > 43 l3=0 # initialization of the value to calculate the test level at 10%.
> >
> > 44 # Creation of an n11 list containing the sizes of the different groups
> > 45 n11=list()
> > 46 for (i in 1:q){
> > 47 n11[[i]]=rep(as.integer(n/R[i]),R[i])
> > 48 n11[[i]][R[i]]=n-((R[i]-1)*n11[[i]][1])
> > 49 }
> >
> >
> > 50 # Creation of lists P11 and P12 which contain the probabilities and
> > 51 # the inverses of the empirical probabilities of the different groups
> > respectively
> >
> > 52 P11=list()
> > 53 P12=list()
> > 54 for (i in 1:q){
> > 55 P11[[i]]=n11[[i]]/n
> > 56 P12[[i]]=n/n11[[i]
> >
> > 57 }
> >
> > 58 # creation of a list containing the W matrices
> > 59 W=list()
> > 60 for (i in 1:q){
> > 61 w=matrix(0,n,R[i])
> > 62 w[1:n11[[i]][1],1]=1
> > 63 if (R[i]>1){
> > 64 for (j in 2:R[i]){
> > 65 s1=sum(n11[[i]][1:(j-1)])
> > 66 w[(1+s1):(s1+n11[[i]][j]),j]=1
> > 67 }}
> > 68 W[[i]]=w
> > 69 }
> >
> > 70 for (i1 in 1:nbrefoissim){
> >
> > 71 # data generation
> > 72 VA1=mvrnorm(n,rep(0,(p+q)),diag((p+q)))
> > 73 X=VA1[,1:p]
> > 74 Y=VA1[,(p+1):(p+q)]
> >
> > 75 # Xbar calculation
> > 76 Xbar=colMeans(X)
> >
> > 77 # Calculation of Xjh bar
> > 78 Xjhbar=list()
> > 79 for (i in 1:q){
> > 80 w=matrix(0,R[i],p)
> > 81 for (j in 1:R[i]){
> > 82 w[j,]=colSums(W[[i]][,j]*X)/n11[[i]][j]
> > 83 }
> > 84 Xjhbar[[i]]=w
> > 85 }
> >
> > 86 #calculation of TO jh
> >
> > 87 TO.jh=list()
> > 88 for (i in 1:q){
> > 89 w=Xjhbar[[i]]
> > 90 to=w*0
> > 91 for (j in 1:R[i]){
> > 92 to[j,]=w[j,]-Xbar
> > 93 }
> > 94 TO.jh[[i]]=to
> > 95 }
> >
> > 96 #calculation of Lamda J
> >
> > 97 Lamda=matrix(0,p,p)
> > 98 for (i in 1:q){
> > 99 to=TO.jh[[i]]
> > 100 w=matrix(0,p,p)
> > 101 for (j in 1:R[i]){
> > 102 w=w+(P11[[i]][j]*(to[j,]%*%t(to[j,])))
> > 103 }
> > 104 Lamda=Lamda+w
> > 105 }
> >
> > 106 tr1=n*sum(diag(Lamda))
> >
> > 107 # Gamma Calculation
> >
> > 108 GGamma=matrix(0,p*sum(R),p*sum(R))
> > 109 PGamma=kronecker(diag(P12[[1]]),diag(p))
> > 110 Ifin=p*R [1]
> > 111 GGamma[1:Ifin,1:Ifin]=PGamma
> > 112 for (i in 2:q){
> > 113 PGamma=kronecker(diag(P12[[i]]),diag(p))
> > 114 Idebut=((p*sum(R[1:(i-1)]))+1)
> > 115 Ifin=(p*sum(R[1:i]))
> > 116 GGamma [Idebut:Ifin,Idebut:Ifin]=PGamma
> > 117 }
> >
> > 118 #Sigma calculation
> >
> > 119 # Calculation of Vn
> > 120 X1=CenteringV(X,Xbar,n)
> > 121 Vn=t(X1)%*%X1/n
> >
> > 122 ## Construction of Sigma
> > 123 GSigma=matrix(0,p*sum(R),p*sum(R))
> > 124 for (i in 1:q ){
> > 125 for (j in 1:R[i] ){
> > 126 Xij=CenteringV(X,Xjhbar[[i]][j,],n)
> > 127 Vij=t(W[[i]][,j]*Xij)%*%Xij/n11[[i]][j]
> >
> > 128 for (k in 1:q ){
> > 129 for (l in 1:R[k]){
> >
> > 130 Xkl=CenteringV(X,Xjhbar[[k]][l,],n)
> > 131 Vijkl=t(W[[i]][,j]*Xij)%*%(W[[k]][,l]*Xkl)/n
> >
> > 132 Vkl=t(W[[k]][,l]*Xkl)%*%Xkl/n11[[k]][l]
> > 133 if (i==1) Idebut=((j-1)*p)+1 else Idebut=((sum(R[1:(i-1)])+j-1)*p)+1
> > 134 if (i==1) Idebut1=(j*p) else Idebut1=((sum(R[1:(i-1)])+j)*p)
> > 135 if (k==1) Ifin=((l-1)*p)+1 else Ifin=((sum(R[1:(k-1)])+l-1)*p)+1
> > 136 if (k==1) Ifin1=(l*p) else Ifin1=((sum(R[1:(k-1)])+l)*p)
> >
> > 137
> >
> GSigma[Idebut:Idebut1,Ifin:Ifin1]=Vijkl+(P11[[i]][j]*P11[[k]][l]*(Vn-Vij-Vkl))
> > 138 }
> > 139 }
> > 140 }
> > 141 }
> >
> >
> > 141 # Determinations of the eigenvalues of sigma epsilon
> > 142 pa=SqrtMatrix0(GSigma)
> > 143 mq= pa %*% GGamma %*% pa
> > 144 u=Re(eigen(mq)$values)
> >
> >
> > 145 # determination of degree of freedom and value c noted va
> > 146 dl=(sum(u)^2)/(sum(u^2))
> > 147 va=(sum(u^2))/(sum(u))
> > 148 pc=1-pchisq(tr1/va, df= dl)
> > 149 pc1[i1]=pc
> >
> > 150 # Test of the value obtained
> > 151 if (pc>m1) d1=0 else d1=1
> > 152 if (pc>m2) d2=0 else d2=1
> > 153 if (pc>m3) d3=0 else d3=1
> > 154 l1=l1+d1
> > 155 l2=l2+d2
> > 156 l3=l3+d3
> > 157 }
> > 158 K=K+1
> > 159 MV [K,1]=n
> > 160 MV [K,2]=l1/number of timessim
> > 161 MV [K,3]=l2/number of timessim
> > 162 MV[K,4]=l3/number of timessim
> > 163 }
> >
> >
> >
> >
> >
> >
> > l
> >
> >       [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > [hidden email] <mailto:[hidden email]>  mailing list -- To
> UNSUBSCRIBE and more, see
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide http://www.R-project.org/posting-
> > guide.html
> > and provide commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Re: Please need help to finalize my code

PIKAL Petr
Hi

I do not want to use kernels, OP wants, God knows for what.

Cheers
Petr

From: Richard O'Keefe <[hidden email]>
Sent: Wednesday, October 14, 2020 1:43 AM
To: PIKAL Petr <[hidden email]>
Cc: Ablaye Ngalaba <[hidden email]>; [hidden email]
Subject: Re: [R] Please need help to finalize my code

What do you *mean* "when you want to use the kernels".
WHICH kernels?
Use to do WHAT?
In your browser, visit http://cran.r-project.org
then select "Packages" from the list on the left.
Then pick the alphabetic list.
Now search for 'kernel'.
You will find dozens of matches.

On Wed, 14 Oct 2020 at 05:15, PIKAL Petr <mailto:[hidden email]> wrote:
Hm. Google tells me that kernel function is in stats package which comes with base installation and is invoked when you start R.



search()

[1] ".GlobalEnv"        "package:stats"     "package:graphics"

[4] "package:grDevices" "package:utils"     "package:datasets"

[7] "package:methods"   "Autoloads"         "package:base"    



And BTW, keep your posts on R-help, others could give you more relevant answers.



Cheers

Petr



From: Ablaye Ngalaba <mailto:[hidden email]>
Sent: Monday, October 12, 2020 7:58 PM
To: PIKAL Petr <mailto:[hidden email]>
Subject: Re: [R] Please need help to finalize my code



Hello.
Thank you for your response.
I would like to ask you the name of the package to install when you want to use the kernels



Le lun. 12 oct. 2020 à 08:28, PIKAL Petr <mailto:[hidden email] <mailto:mailto:[hidden email]> > a écrit :

Hi.

Maybe you will get better answers, but from your code it seems to me that you are treating R as C or other similar language which is not optimal. Considering your first 9 lines, it could be changed either to

CenteringV <- function(X, Ms, n) X-Ms

or you probably could use functions sweep or scale.
Your other code is beyond my experience, sorry.

Cheers
Petr

> -----Original Message-----
> From: R-help <mailto:[hidden email]> On Behalf Of Ablaye Ngalaba
> Sent: Saturday, October 10, 2020 9:24 PM
> To: mailto:[hidden email] <mailto:mailto:[hidden email]>
> Subject: [R] Please need help to finalize my code
>
> Good evening dear administrators,
> It is with pleasure that I am writing to you to ask for help to finalize my R
> programming algorithm.
>
> Indeed, I attach this note to my code which deals with a case of independence
> test statistic . My request is to introduce the kernels using the functional data
> for this same code that I am sending you. So I list the lines for which we need
> to introduce the functional data using the kernels below.
>
> First of all for this code we need to use the functional data. I have numbered
> the lines myself from the original code to give some indication about the lines
> of code to introduce the kernel.
> 1)Centering of redescription function phi(xi) (just use the kernel) 2)this
> function centers the functional data phi(xi) (just use the kernel)
> 3)phi(x1) (or kernel k( ., .) )
> 5)Even here the kernel with the functional data is used.
> 7)return the kernel
> 28) kernel dimension
> 29) kernel dimension
> 30)kernel dimension
> 73) redescription function phi(xi) or the kernel k(. , .) 74)redescription function
> phi(yi) or the kernel k(. , .) 76)redescription function phi(xbar) or the kernel k(.
> , .) 77)redescription function phi(xjhbar) or the kernel k(. , .) 82)redescription
> function phi(xi) or the kernel k(. , .) introduced instead of x 84)redescription
> function phi(xjhbar) or the kernel k(. , .) 89)w= redescription function
> phi(xbar) or the kernel k(. , .)
> 120) we center the redescription function phi(xi) or the kernel k(. , .) 121)Vn is
> a kernel function, so we use ph(xi) or the kernel k(. , , .) 126)centering of the
> redescription function phi(xji) or the kernel k(. , .) 127)Vij is computed using
> redescription function phi(xi) or the kernel k(.
> , .) instead of X.
> 130)centering redescription function phi(Xkl) or the kernel k(. , .) 131)Vijkl
> always using the kernel function as precedent 132)Vkl always using the kernel
> function as precedent
>
>  I look forward to your help and sincere request.
>
>
>                              Yours sincerely
>
> library(MASS)
>
> 1 CenteringV<-function(X,Ms,n){
> 2 # this function centers the data of X
> 3 X1=X*0
> 4 for (i in 1:n){
> 5 X1[i,]=X[i,]-Ms
> 6 }
> 7 return(X1)
> 8 }
>
>
> 9 # Function N°2
> 10 SqrtMatrix0<-function(M) {
> 11 # This function allows us to compute the square root of a matrix
> 12 # using the decomposition M=PDQ where Q is the inverse of P
> 13 # here negative eigenvalues are replaced by zero
>  14 a=eigen(M,TRUE)
>  15 b=a$values
>  16 b[b<0]=0
>  17 c=a$vectors
> 18 d=diag(sqrt(b))
>  19 b=solve(c)
> 20 a=c%*%d%*%b
> 21 return(a)
> 22 }
>
>
> 23 # declaration of parameters
> 24 m1=0.01 # alpha value (1% risk)
> 25 m2=0.05 # alpha value (5% risk)
> 26 m3=0.1 # alpha value (10% risk)
> 27 nbrefoissim=100 # # times the program is running
> 28 p=3 #dimension of variable X
> 29 q=3 #dimension of variable Y
> 30 R=c(5,4,3);# Number of partition of each component of variable Y
> 31 if(length(R) != q) stop("The size of R must be equal to q")
> 32 n=25 # Sample size
> 33 N=c(25,50,100,200,300,400,500,1000) #different sample sizes
> 34 #N=c(25,50) #different sample sizes
> 35 pc1=rep(0.100)
> 36 K=0
> 37 MV=matrix(0,nr=8,nc=4)
> 38 dimnames(MV)[[2]]=c("n","r1%","r5%","r10%")
>
>
> 39 #Beginning of the program
>
>  40 for (n in N){
>
>
> 41 l1=0 # initialization of the value to calculate the test level at 1%.
> 42 l2=0 # initialization of the value to calculate the test level at 5%.
> 43 l3=0 # initialization of the value to calculate the test level at 10%.
>
> 44 # Creation of an n11 list containing the sizes of the different groups
> 45 n11=list()
> 46 for (i in 1:q){
> 47 n11[[i]]=rep(as.integer(n/R[i]),R[i])
> 48 n11[[i]][R[i]]=n-((R[i]-1)*n11[[i]][1])
> 49 }
>
>
> 50 # Creation of lists P11 and P12 which contain the probabilities and
> 51 # the inverses of the empirical probabilities of the different groups
> respectively
>
> 52 P11=list()
> 53 P12=list()
> 54 for (i in 1:q){
> 55 P11[[i]]=n11[[i]]/n
> 56 P12[[i]]=n/n11[[i]
>
> 57 }
>
> 58 # creation of a list containing the W matrices
> 59 W=list()
> 60 for (i in 1:q){
> 61 w=matrix(0,n,R[i])
> 62 w[1:n11[[i]][1],1]=1
> 63 if (R[i]>1){
> 64 for (j in 2:R[i]){
> 65 s1=sum(n11[[i]][1:(j-1)])
> 66 w[(1+s1):(s1+n11[[i]][j]),j]=1
> 67 }}
> 68 W[[i]]=w
> 69 }
>
> 70 for (i1 in 1:nbrefoissim){
>
> 71 # data generation
> 72 VA1=mvrnorm(n,rep(0,(p+q)),diag((p+q)))
> 73 X=VA1[,1:p]
> 74 Y=VA1[,(p+1):(p+q)]
>
> 75 # Xbar calculation
> 76 Xbar=colMeans(X)
>
> 77 # Calculation of Xjh bar
> 78 Xjhbar=list()
> 79 for (i in 1:q){
> 80 w=matrix(0,R[i],p)
> 81 for (j in 1:R[i]){
> 82 w[j,]=colSums(W[[i]][,j]*X)/n11[[i]][j]
> 83 }
> 84 Xjhbar[[i]]=w
> 85 }
>
> 86 #calculation of TO jh
>
> 87 TO.jh=list()
> 88 for (i in 1:q){
> 89 w=Xjhbar[[i]]
> 90 to=w*0
> 91 for (j in 1:R[i]){
> 92 to[j,]=w[j,]-Xbar
> 93 }
> 94 TO.jh[[i]]=to
> 95 }
>
> 96 #calculation of Lamda J
>
> 97 Lamda=matrix(0,p,p)
> 98 for (i in 1:q){
> 99 to=TO.jh[[i]]
> 100 w=matrix(0,p,p)
> 101 for (j in 1:R[i]){
> 102 w=w+(P11[[i]][j]*(to[j,]%*%t(to[j,])))
> 103 }
> 104 Lamda=Lamda+w
> 105 }
>
> 106 tr1=n*sum(diag(Lamda))
>
> 107 # Gamma Calculation
>
> 108 GGamma=matrix(0,p*sum(R),p*sum(R))
> 109 PGamma=kronecker(diag(P12[[1]]),diag(p))
> 110 Ifin=p*R [1]
> 111 GGamma[1:Ifin,1:Ifin]=PGamma
> 112 for (i in 2:q){
> 113 PGamma=kronecker(diag(P12[[i]]),diag(p))
> 114 Idebut=((p*sum(R[1:(i-1)]))+1)
> 115 Ifin=(p*sum(R[1:i]))
> 116 GGamma [Idebut:Ifin,Idebut:Ifin]=PGamma
> 117 }
>
> 118 #Sigma calculation
>
> 119 # Calculation of Vn
> 120 X1=CenteringV(X,Xbar,n)
> 121 Vn=t(X1)%*%X1/n
>
> 122 ## Construction of Sigma
> 123 GSigma=matrix(0,p*sum(R),p*sum(R))
> 124 for (i in 1:q ){
> 125 for (j in 1:R[i] ){
> 126 Xij=CenteringV(X,Xjhbar[[i]][j,],n)
> 127 Vij=t(W[[i]][,j]*Xij)%*%Xij/n11[[i]][j]
>
> 128 for (k in 1:q ){
> 129 for (l in 1:R[k]){
>
> 130 Xkl=CenteringV(X,Xjhbar[[k]][l,],n)
> 131 Vijkl=t(W[[i]][,j]*Xij)%*%(W[[k]][,l]*Xkl)/n
>
> 132 Vkl=t(W[[k]][,l]*Xkl)%*%Xkl/n11[[k]][l]
> 133 if (i==1) Idebut=((j-1)*p)+1 else Idebut=((sum(R[1:(i-1)])+j-1)*p)+1
> 134 if (i==1) Idebut1=(j*p) else Idebut1=((sum(R[1:(i-1)])+j)*p)
> 135 if (k==1) Ifin=((l-1)*p)+1 else Ifin=((sum(R[1:(k-1)])+l-1)*p)+1
> 136 if (k==1) Ifin1=(l*p) else Ifin1=((sum(R[1:(k-1)])+l)*p)
>
> 137
> GSigma[Idebut:Idebut1,Ifin:Ifin1]=Vijkl+(P11[[i]][j]*P11[[k]][l]*(Vn-Vij-Vkl))
> 138 }
> 139 }
> 140 }
> 141 }
>
>
> 141 # Determinations of the eigenvalues of sigma epsilon
> 142 pa=SqrtMatrix0(GSigma)
> 143 mq= pa %*% GGamma %*% pa
> 144 u=Re(eigen(mq)$values)
>
>
> 145 # determination of degree of freedom and value c noted va
> 146 dl=(sum(u)^2)/(sum(u^2))
> 147 va=(sum(u^2))/(sum(u))
> 148 pc=1-pchisq(tr1/va, df= dl)
> 149 pc1[i1]=pc
>
> 150 # Test of the value obtained
> 151 if (pc>m1) d1=0 else d1=1
> 152 if (pc>m2) d2=0 else d2=1
> 153 if (pc>m3) d3=0 else d3=1
> 154 l1=l1+d1
> 155 l2=l2+d2
> 156 l3=l3+d3
> 157 }
> 158 K=K+1
> 159 MV [K,1]=n
> 160 MV [K,2]=l1/number of timessim
> 161 MV [K,3]=l2/number of timessim
> 162 MV[K,4]=l3/number of timessim
> 163 }
>
>
>
>
>
>
> l
>
>       [[alternative HTML version deleted]]
>
> ______________________________________________
> mailto:[hidden email] <mailto:mailto:[hidden email]>  mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-
> guide.html
> and provide commented, minimal, self-contained, reproducible code.
______________________________________________
mailto:[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.