목록Coding/R-programming (22)
exestudiary
함수수식해석dnorm$f(x)$해당 $x$에서의 밀도pnorm$P(X \leq x)$확률을 구하고 싶을 때qnorm$x : P(X \leq x) = P$확률에 대응하는 $x$를 알고 싶을 때rnorm-랜덤으로 $x$를 뽑고 싶을 때
다중선형회귀변수 Y를 X₁,....,Xp로 설명하는 다중선형회귀 모형 회귀계수의 추정 손실분량 최소제곱법data("stackloss")m1 = lm(stack.loss ~ ., data = stackloss); m1여기서 . 의 의미는 stack.loss를 제외한 모든 변수를 덧셈으로 연결한다는 뜻. 후버의 M-추정법m2 = rlm(stack.loss ~ ., data = stackloss); m2 LMSm3 = lqs(stack.loss ~ ., data = stackloss, method = "lms"); m3 LTSm4 = lqs(stack.loss ~ ., data = stackloss, method = "lts"); m4
최소제곱 추정 방법 개체에서 발생하는 잔차에 제곱을 취하여 합을 구하는 방식 큰 절대값 잔차가 발생하지 않도록 회귀직선을 움직임. 한 개의 특이점이 회귀직선의 결정에 막중한 영향력을 가짐. 후버의 M-추정 최소제곱 추정은 함수으로 정의할 떄를 최소화그런데 이 추정치가 안정적이지 못한 이유는 함수가 z²에 비례하는 형태이기 때문 따라서 다음의 변형을 고려한다.|z| 이를 반영한 후버의 M-추정량은 로 얻어진다.여기서 σ를 모르기 때문에 (다음 페이지의) MAD로 추정해 사용한다. MAD (median of absolute deviations)를 가정하고 σ에 대한 로버스트 추정량으로 IQR / 1.35 를 사용한다.MAD는 또 다른 로버스트 추정량으로라 정의한다. 목적함수 l ₀ (z) vs. ..
# 파일 불러오기 ==== Exam = read.table("/Users/user/OneDrive - 경북대학교/학과/2-1/탐색적자료분석 및 실험/실습파일/exam1.txt", head = T) head(Exam$score) # 줄기와 잎그림 확인 ==== stem(Exam$score) # 줄기 수 줄이기와 늘이기 ==== # 이유는 여러가지 가능성을 열어두고 탐색하기 위함. ## 줄기 수 줄이기 ==== stem(Exam$score, scale = 0.5) # (0,1), (2,3).... 한 줄에 다 들어감. # 이렇게하면 이전에 했던 줄기 그림이 쌍봉분포인데 비해 이것의 줄기 그림은 단봉분포의 형태를 취한다. 이것은 너무 단순하여 이 자료의 주요 특성을 잃은 것으로 볼 수도 있다. 즉 2개의 봉우..
# 동전을 3번 던졌을 때 3번 연속 앞면이나 뒷면이 나오는 확률 n = 100000 count = 0 for(i in 1:n){ u = runif(3, 0, 1) coin = as.numeric(u > 0.5) if(coin[1] == coin[2] & coin[2] == coin[3]){ count = count + 1 } } # 동전을 10번 던졌을 때 3번 연속 앞면이나 뒷면이 나오는 확률 n = 10000 count = 0 for(i in 1:n){ u = runif(10, 0, 1) coin = as.numeric(u > 0.5) for(j in 1:8){ if(coin[j]==coin[j+1] & coin[j+1]==coin[j+2]){ count = count + 1 break } } } ..
이항분포 n0 = 30; p = 0.1; mu = n0*p; var = n0*p*(1-p) m = 1000 # 자료 set의 개수(xbar의 개수) n = 100 # 난수 개수 (표본의 개수) xbar = c() for(i in 1:m){ x = rbinom(n, n0, p) #이항분포에서 추출 xbar[i] = mean(x) } xbar_mu = mean(xbar) ; mu xbar_var = var(xbar) ; var/n # histogram hist(xbar, breaks = "fd", prob = T) # theoretical curve ; N(mu, sqrt(var/n)) curve(dnorm(x, mu, sqrt(var/n)), add = T) 포아송분포 lamb = 5 var = lamb ..
### 동전 던지기 ==== k = 0 n = 10000 for(i in 1:n){ u = runif(3,0,1) coin = as.numeric(u > 0.5) if(coin[1] == coin[2] & coin[2] == coin[3]){ k = k + 1 } } k/n ### 동전 던지기 2 ==== x = 0 n = 10000 for(i in 1:n){ u = runif(10, 0, 1) coin = as.numeric(u > 0.5) for(j in 1:(length(u)-2)){ if(coin[j] == coin[j+1] & coin[j+1] == coin[j+2]){ x = x + 1 break # prevent double count } } } x/n
ascending_sorting = function(vec){ sort.rank = matrix(NA, nr = length(vec), nc = 2) for(i in 1:length(vec)){ val = vec[i] rank = 1 for(j in 1:length(vec)){ if(val > vec[j]){ rank = rank + 1 } else { rank = rank } } sort.rank[i,] = c(val,rank) } sort.i = c() for(k in 1:length(vec)){ sort.i = c(sort.i, sort.rank[sort.rank[, 2] == k, 1]) } return(sort.i) } set.seed(100) vec = runif(3, 0, 30) ascend..
Review - 반복문 복습 n = 21 for(i in 1:100){ cat("collatz : NOW =", n, "\n") if (n %% 2 == 0){ n = n / 2 } else { n = n*3 + 1 } if(n == 1){ cat("collatz : END =", n, "\n") break } } 사용자 정의 함수 function(, , ....){} para1, 2 는 매개변수, expression은 매개변수를 활용한 함수식 예시1 Ex0 = function(x) {7*x+5} Ex0(3) Ex1 = function(x){ y = 7*x + 5 # 별도로 객체를 정의하여 값을 저장하면 # 함수를 실행시키더라도 함수값을 출력해주지 않음. } Ex1(4) y # 함수 안에서 만들어진 변수..
반복문 - 문장을 반복 실행하는 경우에 사용 FOR문 # for 문 (for loop/statement) 형식 for ( in ) { } # 설정한 변수 가 지정된 구간 에서 변하면서 # 문장 을 반복실행 # 반복문; for loop ---- for (i in 1:3) { print(i) } for (i in c("a", "b", "c")){ print(i) } for(i in 5:3){ print(i) } # 반복문 : 1~1000합 구하기 ---- sss = 0 for(i in 1:100){ sss = sss + i } ## exercise ---- x = 3 for(i in 1:5){ x = x*2 } sss = 0 for(i in 100:200){ sss = sss + i } kk = 1 for(..
