setwd(“C:/Users/y/Desktop/r”) #路径 MORE
d = read.csv(“hmeq.csv”,na.strings="")
dc = d[complete.cases(d),] #只选取完整的行 选TRUE的行(因为,前)
mdist = function(x){ #自定义函数 功能如下
t = as.matrix(x) #变成矩阵
p = dim(t)[2]
m = apply(t,2,mean) #p个数组成的向量
s = var(t) #斜方差矩阵
return(mahalanobis(t,m,s)) #运行结果是马氏距离
}
dc1 = dc[dcKaTeX parse error: Expected 'EOF', got '#' at position 13: BAD==1,] #̲,前 代表选行 bad=1…BAD==0,]
mdc1 = mdist(dc1[,-c(1,5,6)]) #去掉1列:Y就是我们要预测的BAD,56列是文字
mdc0 = mdist(dc0[,-c(1,5,6)])
c=qchisq(0.99,10) #正态分布99%的去掉 10为变量数
x1=dc1[mdc1<c,] #筛选马氏距离小于C的
x0=dc0[mdc0<c,]
x=rbind(x0,x1) #绑起来在做预测
lg.fit=glm(BAD~.,data=x,family = binomial) #BAD是Y 其他全部来做逻辑回归(也可BAD~.-B/ BAD~A+B)family 要写&#