-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfunction.R
More file actions
62 lines (54 loc) · 1.22 KB
/
function.R
File metadata and controls
62 lines (54 loc) · 1.22 KB
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
KS_dist<-function(vec,Prob,Empi){
weight<-0
pp<-1:length(Empi)/length(Empi)
vec_use<-Prob[which(vec==1)]
if(length(vec_use)>1){
rr<-sort(vec_use)
for(i in 1:(length(rr)-1))
{
rs<-i/length(rr)
ii<-sum(rs>=pp)
tt<-mean(Empi[ii],Empi[ii+1])-rr[i]
tt<-tt/(1-mean(Empi[ii],Empi[ii+1]))
if(tt<0)
{
weight<-weight-tt
}
}
}
return(weight)
}
MAT_Generate<-function(Size=100,
Prob=0.9,
Background=0.6,
Pattern_size=15){
pr<-runif(Size,0.1,Background)
pc<-runif(Size,0.1,Background)
rrr<-c()
ccc<-c()
for(i in 1:Size)
{
rr<-runif(Size,0,1)
rc<-runif(Size,0,1)
rrr<-rbind(rrr,(rr<pr[i])*1)
ccc<-cbind(ccc,(rc<pc[i])*1)
}
MAT<-rrr*ccc
VEC_r<-sample(1:Size,Pattern_size,replace = F)
VEC_c<-sample(1:Size,Pattern_size,replace = F)
MAT[VEC_r,VEC_c]<-1
res<-list()
res[[1]]<-MAT
res[[2]]<-VEC_r
res[[3]]<-VEC_c
return(res)
}
Empirical_generate<-function(Prob,kk=100){
vec<-c()
for(i in 1:length(Prob))
{
vec<-c(vec,rep(Prob[i],floor(Prob[i]*kk)))
}
vec<-sort(vec)
return(vec)
}