Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. #Packages
  2. library(ggplot2)
  3. library(dplyr)
  4. library(tidyverse)
  5.  
  6. #Artificial data set
  7. Consumption <- c(501, 502, 503, 504, 26, 27, 50, 56, 63, 60, 72, 93, 78, 43, 59, 70, 53, 80)
  8. Gender <- gl(n = 3, k = 6, length = 3*6, labels = c("Male", "Female","hermaphrodite"), ordered = FALSE)
  9. Income <- c(5010, 5020, 5030, 5040, 260, 270, 550, 560, 680, 690, 720, 550, 560, 680, 690, 720,500,512)
  10. df3 <- data.frame(Consumption, Gender, Income)
  11. df3
  12.  
  13. # GLM Regression
  14. fm1 <- glm(Consumption~Gender+Income, data=df3, family=poisson)
  15. summary(fm1)
  16.  
  17. # ANOVA
  18. anova(fm1,test="Chi")
  19.  
  20. #Comparing Gender
  21. sort(tapply(df3$Consumption,df3$Gender,mean))
  22.  
  23. #Pairwise comparison - Stepwise like
  24. Gender2<-df3$Gender
  25. levels(Gender2)
  26. levels(Gender2)[2]<-"Fem_Her"
  27. levels(Gender2)[3]<-"Fem_Her"
  28. levels(Gender2)
  29. fm2<-glm(Consumption~Gender2+Income, data=df3, family=poisson)
  30. anova(fm1,fm2,test="Chi")
  31. # 0.7824 Female/Hermaphrodite are equal
  32.  
  33. #Genders are different than I have one parameter for male and another for Female/Hermaphrodite
  34.  
  35. pred <- predict(fm2, type="response", se.fit = TRUE)
  36. df3 = cbind(df3, pred = pred$fit)
  37. df3 = cbind(df3, se = pred$se.fit)
  38. df3 = cbind(df3, ucl=df3$pred + 1.96*df3$se)
  39. df3 = cbind(df3, lcl=df3$pred - 1.96*df3$se)
  40. df3 = cbind(df3, Gender2)
  41.  
  42. df<-df3 %>%
  43. dplyr::group_by(Income, Gender2) %>%
  44. dplyr::summarize(Consumption = mean(Consumption, na.rm = TRUE))
  45. df<-as.data.frame(df)
  46.  
  47. #Plot
  48. df3 %>%
  49. tidyr::gather(type, value, Consumption) %>%
  50. ggplot(mapping=aes(x=type, y=value, color = Gender2)) +
  51. geom_smooth(mapping=aes(ymin = lcl, ymax = ucl), stat = "identity") +
  52. geom_point(df,mapping=aes(x=Income, y=Consumption, color = Gender2)) +
  53. geom_line(mapping=aes(x=Income, y=pred))
  54.  
  55. #
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement