Advertisement
Guest User

Untitled

a guest
May 20th, 2018
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.33 KB | None | 0 0
  1. #Question B
  2. Visits.lm <- lm(res.y ~ factor(sex)+age+income+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc)
  3. plot(Visits.lm, which = 1)
  4. summary(Visits.lm)
  5. anova(Visits.lm)
  6.  
  7.  
  8. #Question C
  9. #log(y+1)
  10. Visits.lmt1 <- lm(log(res.y+1) ~ factor(sex)+age+income+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc)
  11. plot(Visits.lmt1, which = 1, sub="Transformation: log(y+1)")
  12. summary(Visits.lmt1)
  13. #sqrt(y)
  14. Visits.lmt2 <- lm(sqrt(res.y) ~ factor(sex)+age+income+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc)
  15. plot(Visits.lmt2, which = 1, sub="Transformation: sqrt(y)")
  16. summary(Visits.lmt2)
  17. #y^(1/4)
  18. Visits.lmt3 <- lm((res.y)^(1/4) ~ factor(sex)+age+income+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc)
  19. plot(Visits.lmt3, which = 1, sub="Transformation: y^(1/4)")
  20. summary(Visits.lmt3)
  21. #sqrt(y+1)
  22. Visits.lmt4 <- lm(sqrt(res.y+1) ~ factor(sex)+age+income+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc)
  23. plot(Visits.lmt4, which = 1, sub="Transformation: sqrt(y+1)")
  24. summary(Visits.lmt4)
  25. #log(y+2)
  26. Visits.lmt5 <- lm(log(res.y+2) ~ factor(sex)+age+income+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc)
  27. plot(Visits.lmt5, which = 1, sub="Transformation: log(y+2)")
  28. summary(Visits.lmt5)
  29.  
  30.  
  31. #Question D
  32. require(MASS)
  33. Visits.lmt6 <- lm((res.y+1) ~ factor(sex)+age+income+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc)
  34. plot(Visits.lmt6, which = 1)
  35. boxcox(Visits.lmt6, plotit=T, lambda=seq(-6.5, 0, by=0.1))
  36. boxcox(Visits.lmt6, plotit=T, lambda=seq(-4, -2.5, by=0.1))
  37.  
  38. y.bc <- (res.y+1)^(-3.2)
  39. summary(y.bc)
  40. Visits.lmboxcox <- lm(y.bc ~ factor(sex)+age+income+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc)
  41. summary(Visits.lmboxcox)
  42. plot(Visits.lmboxcox, which = 1)
  43. lines(lowess(Visits.lmboxcox$fit, Visits.lmboxcox$res), lwd=2, col="red")
  44.  
  45.  
  46. #Question E
  47. d <- residuals(lm(res.y ~ factor(sex)+age+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc))
  48. g <- residuals(lm(income ~ factor(sex)+age+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc))
  49. plot(g, d,xlab="income residuals",
  50. ylab="res.y residuals",
  51. main="Added Variable Plot: Income",
  52. pch=16, cex.lab=1.5)
  53. lines(lowess(g, d), lwd=2, col="red")
  54. abline(lm(d~g), lwd=2, col="cyan4")
  55.  
  56. d1 <- residuals(lm(res.y ~ factor(sex)+income+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc))
  57. g1 <- residuals(lm(age ~ factor(sex)+income+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc))
  58. plot(g1, d1,xlab="age residuals",
  59. ylab="res.y residuals",
  60. main="Added Variable Plot: Age",
  61. pch=16, cex.lab=1.5)
  62. lines(lowess(g1, d1), lwd=2, col="red")
  63. abline(lm(d1~g1), lwd=2, col="cyan4")
  64.  
  65.  
  66. #Question F
  67. choose(4,2)
  68. #6
  69. #m=6, 0.05/6 = 0.008 bonferroni
  70. insurance <- relevel(factor(insurance), ref="freepor")
  71. mod.1 <- lm(res.y ~ factor(sex)+age+income+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc)
  72. confint(mod.1, level=(1-0.008))
  73. int.1 <- confint(mod.1, level=(1-0.008))[5:7,]
  74. int.1
  75.  
  76. insurance <- relevel(factor(insurance), ref="freerepa")
  77. mod.2 <- lm(res.y ~ factor(sex)+age+income+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc)
  78. #m=6, 0.05/6 = 0.008
  79. confint(mod.2, level=(1-0.008))
  80. int.2 <- confint(mod.2, level=(1-0.008))[6:7,]
  81. int.2
  82.  
  83. insurance <- relevel(factor(insurance), ref="levyplus")
  84. mod.3 <- lm(res.y ~ factor(sex)+age+income+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc)
  85. #m=6, 0.05/6 = 0.008
  86. confint(mod.3, level=(1-0.008))
  87. int.3 <- confint(mod.3, level=(1-0.008))[7,]
  88. int.3
  89.  
  90. pw.comps1 <- rbind(int.1, int.2, int.3)
  91.  
  92. row.names(pw.comps1) <- c("freepor to freerpa", "freepor to levyplus", "freepor to medlevy",
  93. "freerpa to levyplus", "freerpa to medlevy",
  94. "levyplus to medlevy")
  95. pw.comps1
  96.  
  97.  
  98. #Question G
  99. choose(3,2)
  100. #3
  101. #m=3, bonferroni correction 0.05/3 = 1/60
  102. chcond <- relevel(factor(chcond), ref="la")
  103. mod.1 <- lm(res.y ~ factor(sex)+age+income+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc)
  104. confint(mod.1, level=(1-(1/60)))
  105. int.1 <- confint(mod.1, level=(1-1/60))[11:12,]
  106. int.1
  107.  
  108. chcond <- relevel(factor(chcond), ref="nla")
  109. mod.2 <- lm(res.y ~ factor(sex)+age+income+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc)
  110. confint(mod.2, level=(1-(1/60)))
  111. int.2 <- confint(mod.2, level=(1-1/60))[12,]
  112. int.2
  113.  
  114. pw.comps2 <- rbind(int.1, int.2)
  115. row.names(pw.comps2) <- c("la to nla", "la to np",
  116. "nla to np")
  117. pw.comps2
  118.  
  119.  
  120. #Question H
  121. #hypothesis test 1, beta insurance = age = sex = income = nonpresc = 0
  122. mod.l1 <- lm(res.y ~ illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc+income+age+factor(sex)+factor(insurance))
  123. anova(mod.l1)
  124.  
  125. #hypothesis test 2, beta insurance = age = sex = 0
  126. mod.l2 <- lm(res.y ~ income+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc+age+factor(sex)+factor(insurance))
  127. anova(mod.l2)
  128.  
  129. #hypothesis test 3, beta insurance = 0
  130. mod.l3 <- lm(res.y ~ factor(sex)+age+income+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc+factor(insurance))
  131. anova(mod.l3)
  132.  
  133. Visits.lmfinal <- lm(res.y ~ factor(sex)+age+income+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib+nonpresc)
  134. anova(Visits.lmfinal)
  135.  
  136.  
  137. #Question I
  138. Visits.lmallinteractions <- lm(res.y ~ factor(sex)+factor(sex)*age+factor(sex)*income+factor(sex)*illness+factor(sex)*actdays+factor(sex)*hscore+factor(sex)*factor(chcond)+factor(sex)*hospadmi+factor(sex)*hospdays+factor(sex)*prescrib+factor(sex)*nonpresc)
  139. anova(Visits.lmfinal, Visits.lmallinteractions)
  140. anova(Visits.lmallinteractions)
  141.  
  142. #testing the order by chcond last
  143. Visits.lmorder <- lm(res.y ~ factor(sex)+factor(sex)*age+factor(sex)*income+factor(sex)*illness+factor(sex)*actdays+factor(sex)*hscore+factor(chcond)+factor(sex)*hospadmi+factor(sex)*hospdays+factor(sex)*prescrib+factor(sex)*nonpresc+factor(sex):factor(chcond))
  144. anova(Visits.lmorder)
  145.  
  146.  
  147. #Question J
  148. plot(fitted(Visits.lmfinal), rstandard(Visits.lmfinal), xlab="Fitted Values", ylab="Internally Studentized Residuals")
  149. title(main="Internally Studentised Residuals vs Fitted Values", sub="Visits.lmfinal")
  150. lines(lowess(fitted(Visits.lmfinal), rstandard(Visits.lmfinal)), lwd=2, col="red")
  151.  
  152. plot(Visits.lmfinal, which = 2)
  153. plot(Visits.lmfinal, which = 4)
  154.  
  155. sort(cooks.distance(Visits.lmfinal), decreasing=TRUE)[1:7]
  156. sort(abs(rstandard(Visits.lmfinal)), decreasing=TRUE)[1:7]
  157. sort(hatvalues(Visits.lmfinal), decreasing=TRUE)[1:7]
  158.  
  159. dfbetas(Visits.lmfinal)[c(948,965,739,913),]
  160. dffits(Visits.lmfinal)[c(948,965,739,913)]
  161. covratio(Visits.lmfinal)[c(948,965,739,913)]
  162.  
  163.  
  164. #Question K
  165. summary(Visits.lmfinal)
  166.  
  167. Visits.lminsurance <- lm(res.y ~ factor(sex)+age+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib)
  168.  
  169. #age
  170. plot(age,res.y,type="n", main="Response vs Age")
  171. x <- seq(0,12, by = 0.01)
  172. d0 <- ifelse(sex == "0", 1, 0)
  173. d1 <- ifelse(sex == "1", 1, 0)
  174. points((age[d1==0]), (res.y[d1==0]),
  175. col="cyan2", pch=16)
  176. points((age[d1==1]), (res.y[d1==1]),
  177. col="orange", pch=17)
  178. lines(x, predict(Visits.lminsurance, newdata=data.frame(age=x, insurance="freepor", sex="1", illness=mean(illness), actdays=mean(actdays), hscore=mean(hscore), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib))), lwd=2, col="red")
  179. pr <- predict(Visits.lminsurance, newdata=data.frame(age=x, insurance="freepor", sex="1", illness=mean(illness), actdays=mean(actdays), hscore=mean(hscore), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib)), interval="confidence")
  180. lines(x, pr[,"fit"], lwd=2, col="red")
  181. lines(x, pr[,"lwr"], lty=2)
  182. lines(x, pr[,"upr"], lty=2)
  183. lines(x, predict(Visits.lminsurance, newdata=data.frame(age=x, insurance="freerepa", sex="1", illness=mean(illness), actdays=mean(actdays), hscore=mean(hscore), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib))), lwd=2, col="purple")
  184. pr <- predict(Visits.lminsurance, newdata=data.frame(age=x, insurance="freerepa", sex="1", illness=mean(illness), actdays=mean(actdays), hscore=mean(hscore), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib)), interval="confidence")
  185. lines(x, pr[,"fit"], lwd=2, col="purple")
  186. lines(x, pr[,"lwr"], lty=2)
  187. lines(x, pr[,"upr"], lty=2)
  188. lines(x, predict(Visits.lminsurance, newdata=data.frame(age=x, insurance="levyplus", sex="1", illness=mean(illness), actdays=mean(actdays), hscore=mean(hscore), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib))), lwd=2, col="green")
  189. pr <- predict(Visits.lminsurance, newdata=data.frame(age=x, insurance="levyplus", sex="1", illness=mean(illness), actdays=mean(actdays), hscore=mean(hscore), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib)), interval="confidence")
  190. lines(x, pr[,"fit"], lwd=2, col="green")
  191. lines(x, pr[,"lwr"], lty=2)
  192. lines(x, pr[,"upr"], lty=2)
  193. lines(x, predict(Visits.lminsurance, newdata=data.frame(age=x, insurance="medlevy", sex="1", illness=mean(illness), actdays=mean(actdays), hscore=mean(hscore), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib))), lwd=2, col="yellow")
  194. pr <- predict(Visits.lminsurance, newdata=data.frame(age=x, insurance="medlevy", sex="1", illness=mean(illness), actdays=mean(actdays), hscore=mean(hscore), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib)), interval="confidence")
  195. lines(x, pr[,"fit"], lwd=2, col="yellow")
  196. lines(x, pr[,"lwr"], lty=2)
  197. lines(x, pr[,"upr"], lty=2)
  198. legend("topleft", legend=c("freepor", "freerepa", "levyplus", "medlevy"),
  199. col=c("red", "purple", "green", "yellow"), lty=1, lwd=2, cex = 0.75)
  200.  
  201. #hscore
  202. plot(hscore,res.y,type ="n", main="Response vs Hscore")
  203. x <- seq(0,12, by = 0.01)
  204. d0 <- ifelse(sex == "0", 1, 0)
  205. d1 <- ifelse(sex == "1", 1, 0)
  206. points((hscore[d1==0]), (res.y[d1==0]),
  207. col="cyan2", pch=16)
  208. points((hscore[d1==1]), (res.y[d1==1]),
  209. col="orange", pch=17)
  210. lines(x, predict(Visits.lminsurance, newdata=data.frame(hscore=x, insurance="freepor", age=mean(age), sex="1", illness=mean(illness), actdays=mean(actdays), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib))), lwd=2, col="red")
  211. pr <- predict(Visits.lminsurance, newdata=data.frame(hscore=x, insurance="freepor", age=mean(age), sex="1", illness=mean(illness), actdays=mean(actdays), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib)), interval="confidence")
  212. lines(x, pr[,"fit"], lwd=2, col="red")
  213. lines(x, pr[,"lwr"], lty=2)
  214. lines(x, pr[,"upr"], lty=2)
  215. lines(x, predict(Visits.lminsurance, newdata=data.frame(hscore=x, insurance="freerepa", age=mean(age), sex="1", illness=mean(illness), actdays=mean(actdays), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib))), lwd=2, col="purple")
  216. pr <- predict(Visits.lminsurance, newdata=data.frame(hscore=x, insurance="freerepa", age=mean(age), sex="1", illness=mean(illness), actdays=mean(actdays), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib)), interval="confidence")
  217. lines(x, pr[,"fit"], lwd=2, col="purple")
  218. lines(x, pr[,"lwr"], lty=2)
  219. lines(x, pr[,"upr"], lty=2)
  220. lines(x, predict(Visits.lminsurance, newdata=data.frame(hscore=x, insurance="levyplus", age=mean(age), sex="1", illness=mean(illness), actdays=mean(actdays), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib))), lwd=2, col="green")
  221. pr <- predict(Visits.lminsurance, newdata=data.frame(hscore=x, insurance="levyplus", age=mean(age), sex="1", illness=mean(illness), actdays=mean(actdays), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib)), interval="confidence")
  222. lines(x, pr[,"fit"], lwd=2, col="green")
  223. lines(x, pr[,"lwr"], lty=2)
  224. lines(x, pr[,"upr"], lty=2)
  225. lines(x, predict(Visits.lminsurance, newdata=data.frame(hscore=x, insurance="medlevy", age=mean(age), sex="1",illness=mean(illness), actdays=mean(actdays), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib))), lwd=2, col="yellow")
  226. pr <- predict(Visits.lminsurance, newdata=data.frame(hscore=x, insurance="medlevy", age=mean(age), sex="1", illness=mean(illness), actdays=mean(actdays), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib)), interval="confidence")
  227. lines(x, pr[,"fit"], lwd=2, col="yellow")
  228. lines(x, pr[,"lwr"], lty=2)
  229. lines(x, pr[,"upr"], lty=2)
  230. legend("topleft", legend=c("freepor", "freerepa", "levyplus", "medlevy"),
  231. col=c("red", "purple", "green", "yellow"), lty=1, lwd=2, cex = 0.75)
  232.  
  233. #income
  234. Visits.lmincome <- lm(res.y ~ factor(sex)+age+income+factor(insurance)+illness+actdays+hscore+factor(chcond)+hospadmi+hospdays+prescrib)
  235.  
  236. plot(income,res.y,type="n", main="Response vs Income")
  237. x <- seq(0,12, by = 0.01)
  238. d0 <- ifelse(sex == "0", 1, 0)
  239. d1 <- ifelse(sex == "1", 1, 0)
  240. points((income[d1==0]), (res.y[d1==0]),
  241. col="cyan2", pch=16)
  242. points((income[d1==1]), (res.y[d1==1]),
  243. col="orange", pch=17)
  244. lines(x, predict(Visits.lmincome, newdata=data.frame(income=x, insurance="freepor", age=mean(age), sex="1", illness=mean(illness), actdays=mean(actdays), hscore=mean(hscore), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib))), lwd=2, col="red")
  245. pr <- predict(Visits.lmincome, newdata=data.frame(income=x, insurance="freepor", age=mean(age), sex="1", illness=mean(illness), actdays=mean(actdays), hscore=mean(hscore), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib)), interval="confidence")
  246. lines(x, pr[,"fit"], lwd=2, col="red")
  247. lines(x, pr[,"lwr"], lty=2)
  248. lines(x, pr[,"upr"], lty=2)
  249. lines(x, predict(Visits.lmincome, newdata=data.frame(income=x, insurance="freerepa", age=mean(age), sex="1", illness=mean(illness), actdays=mean(actdays), hscore=mean(hscore), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib))), lwd=2, col="purple")
  250. pr <- predict(Visits.lmincome, newdata=data.frame(income=x, insurance="freerepa", age=mean(age), sex="1", illness=mean(illness), actdays=mean(actdays), hscore=mean(hscore), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib)), interval="confidence")
  251. lines(x, pr[,"fit"], lwd=2, col="purple")
  252. lines(x, pr[,"lwr"], lty=2)
  253. lines(x, pr[,"upr"], lty=2)
  254. lines(x, predict(Visits.lmincome, newdata=data.frame(income=x, insurance="levyplus", age=mean(age), sex="1",illness=mean(illness), actdays=mean(actdays), hscore=mean(hscore), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib))), lwd=2, col="green")
  255. pr <- predict(Visits.lmincome, newdata=data.frame(income=x, insurance="levyplus", age=mean(age), sex="1", illness=mean(illness), actdays=mean(actdays), hscore=mean(hscore), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib)), interval="confidence")
  256. lines(x, pr[,"fit"], lwd=2, col="green")
  257. lines(x, pr[,"lwr"], lty=2)
  258. lines(x, pr[,"upr"], lty=2)
  259. lines(x, predict(Visits.lmincome, newdata=data.frame(income=x, insurance="medlevy", age=mean(age), sex="1", illness=mean(illness), actdays=mean(actdays), hscore=mean(hscore), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib))), lwd=2, col="yellow")
  260. pr <- predict(Visits.lmincome, newdata=data.frame(income=x, insurance="medlevy", age=mean(age), sex="1", illness=mean(illness), actdays=mean(actdays), hscore=mean(hscore), chcond="np", hospadmi=mean(hospadmi), hospdays=mean(hospdays), prescrib=mean(prescrib)), interval="confidence")
  261. lines(x, pr[,"fit"], lwd=2, col="yellow")
  262. lines(x, pr[,"lwr"], lty=2)
  263. lines(x, pr[,"upr"], lty=2)
  264. legend("topleft", legend=c("freepor", "freerepa", "levyplus", "medlevy"),
  265. col=c("red", "purple", "green", "yellow"), lty=1, lwd=2, cex = 0.75)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement