User Tools

Site Tools


anova_note:code01

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
anova_note:code01 [2025/12/07 10:36] hkimscilanova_note:code01 [2025/12/09 23:16] (current) hkimscil
Line 12: Line 12:
 o <- rnorm(n.o, 100, 10) o <- rnorm(n.o, 100, 10)
 p <- rnorm(n.p, 104, 10) p <- rnorm(n.p, 104, 10)
- 
-t.out <- t.test(o,p, var.equal=T) 
-t.out 
  
 # old way # old way
Line 22: Line 19:
 df.p <- n.p - 1 df.p <- n.p - 1
 diff <- m.o - m.p diff <- m.o - m.p
 +m.o
 +m.p
 +diff
 pv <- (ss(o)+ss(p))/(df.o+df.p) pv <- (ss(o)+ss(p))/(df.o+df.p)
 se <- sqrt((pv/n.o) + (pv/n.p)) se <- sqrt((pv/n.o) + (pv/n.p))
Line 27: Line 27:
 t.cal t.cal
 pt(t.cal, df.o+df.p) * 2 pt(t.cal, df.o+df.p) * 2
 +
 +t.out <- t.test(o, p, var.equal=T)
 +t.out
 t.out$statistic t.out$statistic
 t.out$p.value t.out$p.value
Line 32: Line 35:
 # #
 comb <- list(o = o, p = p) comb <- list(o = o, p = p)
 +o
 +p
 +comb
 op <- stack(comb) op <- stack(comb)
-head(op)+op
 colnames(op)[1] <- "values" colnames(op)[1] <- "values"
 colnames(op)[2] <- "group" colnames(op)[2] <- "group"
 op$group <- factor(op$group) op$group <- factor(op$group)
 head(op) head(op)
 +tail(op)
 boxplot(op$values~op$group) boxplot(op$values~op$group)
  
- +plot(op$values~op$group)
-plot(op$values~op$group)+
 boxplot(op$values~op$group, main="values by group", boxplot(op$values~op$group, main="values by group",
         yaxt="n", xlab="value", horizontal=TRUE,         yaxt="n", xlab="value", horizontal=TRUE,
Line 49: Line 55:
        c("o","p"), fill=terrain.colors(2), horiz=TRUE)        c("o","p"), fill=terrain.colors(2), horiz=TRUE)
  
-# o = IQ 
-# p = IQ  
-# 둘을 합하여 구한 집합 op 의 IQ 점수 
-# 이 전체집합의 분산은? 
 m.tot <- mean(op$values) m.tot <- mean(op$values)
 m.o <- mean(o) m.o <- mean(o)
 m.p <- mean(p) m.p <- mean(p)
 +m.tot
 +m.o 
 +m.p 
  
 min.x <- min(op$values) min.x <- min(op$values)
Line 65: Line 70:
 abline(v=m.o, col="black", lwd=3) abline(v=m.o, col="black", lwd=3)
 hist(p, add=T, breaks=br, hist(p, add=T, breaks=br,
-     col=rgb(.5,1,1,.5)) 
-abline(v=m.p, col="blue", lwd=3) 
-abline(v=m.tot, col='red', lwd=3) 
- 
-hist(o, breaks=br,  
-     col=rgb(1,1,1,.5)) 
-abline(v=m.o, col="black", lwd=3) 
-abline(v=m.tot, col='red', lwd=3) 
- 
-hist(p, breaks=br, 
      col=rgb(.5,1,1,.5))      col=rgb(.5,1,1,.5))
 abline(v=m.p, col="blue", lwd=3) abline(v=m.p, col="blue", lwd=3)
Line 90: Line 85:
 var(op$values) var(op$values)
 ss.tot ss.tot
- 
-ss.o <- ss(o) 
-ss.p <- ss(p) 
-df.o <- length(o)-1 
-df.p <- length(p)-1 
- 
 m.tot m.tot
 m.o m.o
 m.p m.p
 +ss.o <- ss(o)
 +ss.p <- ss(p)
 ss.o ss.o
 ss.p ss.p
  
 hist(o, breaks=br,  hist(o, breaks=br, 
-     col=rgb(1,1,1,.5))+     col=rgb(1,1,1,.5),  
 +     main = paste0("o mean = ", round(m.o,2),  
 +                   "\n", "tot mean = ", round(m.tot,2),  
 +                   ""))
 abline(v=m.o, col="black", lwd=3) abline(v=m.o, col="black", lwd=3)
-hist(padd=T, breaks=br, +abline(v=m.totcol='red', lwd=3) 
-     col=rgb(.5,1,1,.5))+ 
 +hist(p, breaks=br, 
 +     col=rgb(.5,1,1,.5)
 +     main = paste0("p mean = ", round(m.p,2),  
 +                   "\n", "tot mean = ", round(m.tot,2),  
 +                   ""    )
 abline(v=m.p, col="blue", lwd=3) abline(v=m.p, col="blue", lwd=3)
 abline(v=m.tot, col='red', lwd=3) abline(v=m.tot, col='red', lwd=3)
  
-ss.bet <- n.o*(m.tot-m.o)^2 + n.p*(m.tot-m.p)^2 +n.o*(m.tot-m.o)^2   # m.tot 에서 o그룹공통 까지의 거리를 제곱해서 모두 더한 값 
-ss.bet+                    # 위 그림에서 빨간색 선에서 검은색 선까지의 거리를  
 +                    # 제곱해서 모두 더한 값 
 +n.p*(m.tot-m.p)^2   # m.tot 에서 p그룹공통 까지의 거리를 제곱해서 모두 더한 값 
 +                    # 위 그림에서 빨간색 선에서 파란색 선까지의  
 +                    # 거리를 제곱해서 모두 더한 값 
 +ss.bet <- n.o*(m.tot-m.o)^2 +   # 이것은 그룹 (IV, 독립변인) 때문에  
 +            n.p*(m.tot-m.p)^2     # 생긴 그룹 간 차이이다 
 +ss.bet            # 따라서 이것을 SS between group이라고 부른다 
 + 
 + 
 +# ss within group 
  
 hist(o, breaks=br,  hist(o, breaks=br, 
      col=rgb(1,1,1,.5))      col=rgb(1,1,1,.5))
 abline(v=m.o, col="black", lwd=3) abline(v=m.o, col="black", lwd=3)
-ss.o+ss.o <- ss(o)   # o집단의 평균인 검은색 선에서 개인 점수까지의  
 +                # 거리는 (오차는) 독립변인과 상관없이 랜덤하게  
 +                # 나타나는 것 
 +ss.o            # o집단의 것을 ss.o라고 부른다
  
 hist(p, breaks=br, hist(p, breaks=br,
      col=rgb(.5,1,1,.5))      col=rgb(.5,1,1,.5))
 abline(v=m.p, col="blue", lwd=3) abline(v=m.p, col="blue", lwd=3)
-ss.p+ss.p <- ss(p)   # p집단도 마찬가지이다. 이 집단 내의 sum of square값은  
 +                # p 집단의 공통특징인 평균에서 개인점수가 랜덤하게  
 +ss.p            # 나타나는 것이고, 이것을 sum of square p라고 부른다
  
-ss.wit <- ss.o+ss.p  +ss.wit <- ss.o + ss.p # 위 각 집단 내부의 ss값을 합한 값을 ss within group 
-ss.wit+                      # 이라고 부른다
  
-ss.between +# 이 둘은 각 그룹의 평균을 중심으로  
 +# random 하게 나타나는 평균에서의 거리이다 (에러). 
 +# 이것을 sum of square within group 이라고 부른다 
 +# 이것을 우리는 random difference라고 불러도 되겠다
 ss.wit ss.wit
-ss.bet+ss.wit 
  
 +# 반면에 ss between group은 IV의 효과 때문에 나타나는
 +# 것이다. 우리는 이것을 group difference라고 부른다.
 +ss.bet
 +ss.bet + ss.wit
 ss.tot ss.tot
  
 +# degrees of freedom
 df.tot <- length(op$values)-1 df.tot <- length(op$values)-1
 df.bet <- nlevels(op$group) - 1 df.bet <- nlevels(op$group) - 1
-df.wit <- (n.o-1)+(n.p-1)+df.wit <- (n.o-1) + (n.p-1)
 df.tot df.tot
 df.bet df.bet
 df.wit df.wit
  
 +# variance of total, between group, and within group
 ms.tot <- ss.tot / df.tot ms.tot <- ss.tot / df.tot
 ms.bet <- ss.bet / df.bet ms.bet <- ss.bet / df.bet
Line 148: Line 170:
 p.val p.val
 summary(aov(op$values~op$group)) summary(aov(op$values~op$group))
-t.test(o,p, var.equal = T) 
  
-diff <- m.o - m.p +# t.cal 값을 확인해보면 
-ssp <- (ss.o + ss.p) / (df.+ df.p+t.test(o,p, var.equal = T# 혹은 
-se <- sqrt(ssp/n.o+ssp/n.p+t.cal <- diff/se 
-t.cal <- diff/se +
-t.cal+
 p.t.cal <- pt(abs(t.cal), df=df.o+df.p, lower.tail = F)*2 p.t.cal <- pt(abs(t.cal), df=df.o+df.p, lower.tail = F)*2
 p.t.cal p.t.cal
 +
 +# 하나는 sd 를 unit으로 계산한 값이고 (t.cal)
 +# 다른 하나는 variance를 unit으로 계산한 값이지만 
 +# 원리는 같다. 
 t.cal^2 t.cal^2
 f.cal f.cal
- 
-df.bet 
-df.wit 
-f.cal 
- 
- 
 </code> </code>
anova_note/code01.1765103803.txt.gz · Last modified: by hkimscil

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki