2017-11-26 1 views
-1

다음과 같이 정의 된 R 함수를 만들어야합니다. y = a + bx + e. 값은 다음과 같이 주어진다 : a = 1, b = 2, e는 정규 분포 (평균 = 0, sd = 1)로부터 무작위 추출이다. function(a, bx, e)R에 함수 만들기, x에 y를 회귀

와 'A', 'B'를 만들고, 변수로 'E':

a <- 1 

b <- 2 

e <- rnorm(1, 0, 1) 

내가 그렇게 프로그램을 실행하려면이를 바탕으로, 나는 함수 명령을 사용하여 함수를 작성 그것은이 함수를 생성하지만, 할 때마다 객체 'x'를 찾을 수 없다는 오류가 발생합니다. 나는이 문제들을 가지고 있기 때문에 x에 대해 y를 회귀 할 수 없다.

답변

2

데이터 생성에서 간단한 선형 모델을 피팅하는 간단한 작업 예제입니다.

# Set fixed RNG seed for reproducibility 
set.seed(2017); 

# Function to generate data 
createData <- function(a = 1, b = 2, nPoints = 1000) { 
    x <- runif(nPoints); 
    y <- a + b * x + rnorm(nPoints, mean = 0, sd = 1) 
    return(data.frame(x = x, y = y)); 
} 

# Create sample data 
df <- createData(); 
head(df); 
#x   y 
#1 0.9242426 3.7139739 
#2 0.5371764 0.6020863 
#3 0.4691956 2.0385870 
#4 0.2886262 1.1376357 
#5 0.7700882 2.0526688 
#6 0.7727687 3.9418345 

# Linear model 
fit <- lm(y ~ x, data = df); 
summary(fit); 
# 
#Call: 
#lm(formula = y ~ x, data = df) 
# 
#Residuals: 
# Min  1Q Median  3Q  Max 
#-2.9886 -0.6923 -0.0166 0.7030 3.2497 
# 
#Coefficients: 
#   Estimate Std. Error t value Pr(>|t|) 
#(Intercept) 1.07750 0.06272 17.18 <2e-16 *** 
#x   1.92354 0.11016 17.46 <2e-16 *** 
#--- 
#Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
# 
#Residual standard error: 0.998 on 998 degrees of freedom 
#Multiple R-squared: 0.234, Adjusted R-squared: 0.2332 
#F-statistic: 304.9 on 1 and 998 DF, p-value: < 2.2e-16 

par(mfrow = c(2, 2)); 
plot(fit); 

enter image description here

+0

좋아! 결과의 히스토그램을 만들려고하는데 hist() 명령을 사용하는 방법이 확실하지 않습니다. 어떤 객체를 사용해야합니까? – Soppers

+0

@Soppers 히스토그램에서 잔차의 분포를 보여주고 싶다고 가정합니다. 'hist (fit $ 잔차, 휴식 = 30) '. –

관련 문제