F Distribution

library(ggplot2)
# F 분포 그래프 
ggplot(data.frame(x=c(0,5)), aes(x=x)) +
     stat_function(fun=df, args=list(df1=9, df2=9), colour="blue", size=0.5) +
     stat_function(fun=df, args=list(df1=10, df2=30), colour="red", size=0.5) +
     stat_function(fun=df, args=list(df1=50, df2=100), colour="yellow", size=0.5) +
     annotate("segment", x=3, xend=3.5, y=1.4, yend=1.4, colour="blue", size=0.5) +
     annotate("segment", x=3, xend=3.5, y=1.2, yend=1.2, colour="red", size=0.5) + 
     annotate("segment", x=3, xend=3.5, y=1.0, yend=1.0, colour="yellow", size=0.5) + 
     annotate("text", x=4.3, y=1.4, label="F(df1=9, df2=9)") +
     annotate("text", x=4.3, y=1.2, label="F(df1=10, df2=30)") + 
     annotate("text", x=4.3, y=1.0, label="F(df1=50, df2=100)") +
     ggtitle("F Distribution")

# 누적 F 확률 그래프
ggplot(data.frame(x=c(0,5)), aes(x=x)) + 
  stat_function(fun=pf, args=list(df1=9, df2=9), colour="blue", size=1) + 
  ggtitle("Cumulative F-distribution : F(df1=9, df2=9)") +
  geom_hline(yintercept = 0.95) +
  geom_vline(xintercept = 3.17) +
  geom_vline(xintercept = 2.1028, show.legend = T) + geom_hline(yintercept = 0.8578) 

# 누적 F분포 확률 값 계산
pf(3.17, 9, 9) # => 0.949% 누적분포 함수 ( cumulative distribution function )
[1] 0.9496076
qf(0.95, 9, 9) # => 3.178  분위수 함수 ( quantile function )
[1] 3.178893
a = c(175, 168, 168, 190, 156, 181, 182, 175, 174, 179)
b = c(185, 169, 173, 173, 188, 186, 175, 174, 179, 180)
c = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
var.test(a, b) # F = 2.1028, p-value = 0.2834

    F test to compare two variances

data:  a and b
F = 2.1028, num df = 9, denom df = 9, p-value = 0.2834
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
 0.5223017 8.4657950
sample estimates:
ratio of variances 
          2.102784 
var(a) / var(b) # => 2.1028
[1] 2.102784
qf(0.95, length(a) - 1, length(b) - 1)  # => 3.178 ,  2.10 < 3.17  , so 귀무가설 지지 ( 등분산 )
[1] 3.178893
pf(2.10, 9, 9) #=> 0.8578  
[1] 0.8578669
( 1 - pf(2.1028, length(a) - 1, length(b) - 1) ) * 2 # => 0.2834 == p-value of var.test
[1] 0.2834206
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQKLS0tCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBGIERpc3RyaWJ1dGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKYGBge3J9CmxpYnJhcnkoZ2dwbG90MikKCiMgRiDrtoTtj6wg6re4656Y7ZSEIApnZ3Bsb3QoZGF0YS5mcmFtZSh4PWMoMCw1KSksIGFlcyh4PXgpKSArCiAgICAgc3RhdF9mdW5jdGlvbihmdW49ZGYsIGFyZ3M9bGlzdChkZjE9OSwgZGYyPTkpLCBjb2xvdXI9ImJsdWUiLCBzaXplPTAuNSkgKwogICAgIHN0YXRfZnVuY3Rpb24oZnVuPWRmLCBhcmdzPWxpc3QoZGYxPTEwLCBkZjI9MzApLCBjb2xvdXI9InJlZCIsIHNpemU9MC41KSArCiAgICAgc3RhdF9mdW5jdGlvbihmdW49ZGYsIGFyZ3M9bGlzdChkZjE9NTAsIGRmMj0xMDApLCBjb2xvdXI9InllbGxvdyIsIHNpemU9MC41KSArCiAgICAgYW5ub3RhdGUoInNlZ21lbnQiLCB4PTMsIHhlbmQ9My41LCB5PTEuNCwgeWVuZD0xLjQsIGNvbG91cj0iYmx1ZSIsIHNpemU9MC41KSArCiAgICAgYW5ub3RhdGUoInNlZ21lbnQiLCB4PTMsIHhlbmQ9My41LCB5PTEuMiwgeWVuZD0xLjIsIGNvbG91cj0icmVkIiwgc2l6ZT0wLjUpICsgCiAgICAgYW5ub3RhdGUoInNlZ21lbnQiLCB4PTMsIHhlbmQ9My41LCB5PTEuMCwgeWVuZD0xLjAsIGNvbG91cj0ieWVsbG93Iiwgc2l6ZT0wLjUpICsgCiAgICAgYW5ub3RhdGUoInRleHQiLCB4PTQuMywgeT0xLjQsIGxhYmVsPSJGKGRmMT05LCBkZjI9OSkiKSArCiAgICAgYW5ub3RhdGUoInRleHQiLCB4PTQuMywgeT0xLjIsIGxhYmVsPSJGKGRmMT0xMCwgZGYyPTMwKSIpICsgCiAgICAgYW5ub3RhdGUoInRleHQiLCB4PTQuMywgeT0xLjAsIGxhYmVsPSJGKGRmMT01MCwgZGYyPTEwMCkiKSArCiAgICAgZ2d0aXRsZSgiRiBEaXN0cmlidXRpb24iKQpgYGAKCmBgYHtyfQojIOuIhOyggSBGIO2ZleuloCDqt7jrnpjtlIQKZ2dwbG90KGRhdGEuZnJhbWUoeD1jKDAsNSkpLCBhZXMoeD14KSkgKyAKICBzdGF0X2Z1bmN0aW9uKGZ1bj1wZiwgYXJncz1saXN0KGRmMT05LCBkZjI9OSksIGNvbG91cj0iYmx1ZSIsIHNpemU9MSkgKyAKICBnZ3RpdGxlKCJDdW11bGF0aXZlIEYtZGlzdHJpYnV0aW9uIDogRihkZjE9OSwgZGYyPTkpIikgKwogIGdlb21faGxpbmUoeWludGVyY2VwdCA9IDAuOTUpICsKICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSAzLjE3KSArCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gMi4xMDI4LCBzaG93LmxlZ2VuZCA9IFQpICsgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gMC44NTc4KSAKYGBgCgpgYGB7cn0KIyDriITsoIEgRuu2hO2PrCDtmZXrpaAg6rCSIOqzhOyCsApwZigzLjE3LCA5LCA5KSAjID0+IDAuOTQ5JSDriITsoIHrtoTtj6wg7ZWo7IiYICggY3VtdWxhdGl2ZSBkaXN0cmlidXRpb24gZnVuY3Rpb24gKQpxZigwLjk1LCA5LCA5KSAjID0+IDMuMTc4ICDrtoTsnITsiJgg7ZWo7IiYICggcXVhbnRpbGUgZnVuY3Rpb24gKQoKCmEgPSBjKDE3NSwgMTY4LCAxNjgsIDE5MCwgMTU2LCAxODEsIDE4MiwgMTc1LCAxNzQsIDE3OSkKYiA9IGMoMTg1LCAxNjksIDE3MywgMTczLCAxODgsIDE4NiwgMTc1LCAxNzQsIDE3OSwgMTgwKQpjID0gYygxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCkKdmFyLnRlc3QoYSwgYikgIyBGID0gMi4xMDI4LCBwLXZhbHVlID0gMC4yODM0CnZhcihhKSAvIHZhcihiKSAjID0+IDIuMTAyOApxZigwLjk1LCBsZW5ndGgoYSkgLSAxLCBsZW5ndGgoYikgLSAxKSAgIyA9PiAzLjE3OCAsICAyLjEwIDwgMy4xNyAgLCBzbyDqt4DrrLTqsIDshKQg7KeA7KeAICgg65Ox67aE7IKwICkKcGYoMi4xMCwgOSwgOSkgIz0+IDAuODU3OCAgCiggMSAtIHBmKDIuMTAyOCwgbGVuZ3RoKGEpIC0gMSwgbGVuZ3RoKGIpIC0gMSkgKSAqIDIgIyA9PiAwLjI4MzQgPT0gcC12YWx1ZSBvZiB2YXIudGVzdApgYGAK