R'de bir güven aralığı nasıl çizilir
Güven aralığı, belirli bir güven düzeyine sahip bir popülasyon parametresini içermesi muhtemel bir değer aralığıdır.
Bu eğitimde, R’deki bir veri kümesi için güven aralığının nasıl çizileceği açıklanmaktadır.
Örnek: R’de bir güven aralığı çizmek
R’de 100 satır ve 2 sütundan oluşan aşağıdaki veri kümesine sahip olduğumuzu varsayalım:
#make this example reproducible set.seed(0) #create dataset x <- rnorm(100) y <- x*2 + rnorm(100) df <- data.frame(x = x, y = y) #view first six rows of dataset head(df) xy 1 1.2629543 3.3077678 2 -0.3262334 -1.4292433 3 1.3297993 2.0436086 4 1.2724293 2.5914389 5 0.4146414 -0.3011029 6 -1.5399500 -2.5031813
X ve y arasındaki ilişkinin grafiğini oluşturmak için öncelikle doğrusal bir regresyon modelini yerleştirebiliriz:
model <- lm(y ~ x, data = df)
Daha sonra, gerçek güven bantlarını oluşturmak için abline() işlevini velines() işlevini kullanarak tahmini doğrusal regresyon çizgisinin bir grafiğini oluşturabiliriz:
#get predicted y values using regression equation newx <- seq(min(df$x), max(df$x), length.out=100) preds <- predict(model, newdata = data.frame(x=newx), interval = 'confidence') #create plot of x vs. y, but don't display individual points (type='n') plot(y ~ x, data = df, type = 'n') #add fitted regression line abline(model) #add dashed lines for confidence bands lines(newx, preds[,3], lty = 'dashed', col = 'blue') lines(newx, preds[,2], lty = 'dashed', col = 'blue')
Siyah çizgi, yerleştirilmiş doğrusal regresyon çizgisini gösterirken iki kesikli mavi çizgi, güven aralıklarını gösterir.
İsteğe bağlı olarak, aşağıdaki kodu kullanarak güven aralığı çizgileri ile tahmini doğrusal regresyon çizgisi arasındaki alanı da doldurabilirsiniz:
#create plot of x vs. y plot(y ~ x, data = df, type = 'n') #fill in area between regression line and confidence interval polygon(c(rev(newx), newx), c(rev(preds[,3]), preds[,2]), col = 'grey', border = NA) #add fitted regression line abline(model) #add dashed lines for confidence bands lines(newx, preds[,3], lty = 'dashed', col = 'blue') lines(newx, preds[,2], lty = 'dashed', col = 'blue')
İşte baştan sona kodun tamamı:
#make this example reproducible set.seed(0) #create dataset x <- rnorm(100) y <- x*2 + rnorm(100) df <- data.frame(x = x, y = y) #fit linear regression model model <- lm(y ~ x, data = df) #get predicted y values using regression equation newx <- seq(min(df$x), max(df$x), length.out=100) preds <- predict(model, newdata = data.frame(x=newx), interval = 'confidence') #create plot of x vs. y plot(y ~ x, data = df, type = 'n') #fill in area between regression line and confidence interval polygon(c(rev(newx), newx), c(rev(preds[,3]), preds[,2]), col = 'grey', border = NA) #add fitted regression line abline(model) #add dashed lines for confidence bands lines(newx, preds[,3], lty = 'dashed', col = 'blue') lines(newx, preds[,2], lty = 'dashed', col = 'blue')
Ek kaynaklar
Güven aralıkları nedir?
Grafiklere düz çizgiler eklemek için R’de abline() işlevi nasıl kullanılır?