Adel Powell
2012-Oct-26 21:54 UTC
[R] Problems getting slope and intercept to change when do multiple reps.
library(ROCR) n <- 1000 fitglm <- function(iteration,intercept,sigma,tau,beta){ x <- rnorm(n,0,sigma) ystar <- intercept+beta*x z <- rbinom(n,1,plogis(ystar)) xerr <- x + rnorm(n,0,tau) model<-glm(z ~ xerr, family=binomial(logit)) *int*<-coef(model)[1] *slope*<-coef(model)[2] # when add error you are suppose to get slightly bias slope. However when I change the beta in the original X, I am not getting the save average slope as output? strange? pred<-predict(model,type="response") cutp<-.5 result<-ifelse(pred>cutp,1,0) rocpreds<-prediction(result,z) auc<-performance(rocpreds,"auc")@y.values accuracy<-length(which(result==z))/length(z) tn<- sum(z==0 & result==0) # True Negative fp<- sum(z==0 & result==1) # False Positive tp<- sum(z==1 & result==1) # True Positive fn<- sum(z==1 & result==0) # False Negative sensitivity<- tp/(tp+fn) specificity<-tn/(tn+fp) output<-c(*int,slope*,cutp,accuracy,auc,sensitivity,specificity,iteration) names(output)<-c("Intercept","Slope","CutPoint","Accuracy","AUC","Sensitivity","Specificity","iteration") return(output) } y<-fitglm(1,2,1,2,4) y Output<-t(sapply(1:10, function(x) fitglm(x,intercept=2, sigma=1,tau=2,beta4))) apply(output,2, function(x) mean(unlist(x))) apply(output,2, function(x) var(unlist(x))) Output<-t(sapply(1:500, function(x) fitglm(x,intercept=0, sigma=1,tau=.25, beta=1))) apply(output,2, function(x) mean(unlist(x))) apply(output,2, function(x) var(unlist(x))) Output<-t(sapply(1:500, function(x) fitglm(x,intercept=2, sigma=1,tau=.25, beta=6))) apply(output,2, function(x) mean(unlist(x))) apply(output,2, function(x) var(unlist(x))) [[alternative HTML version deleted]]