2017-11-26 7 views
-1

Rで、y = a + bx + eと定義された関数を作成する必要があります。値はa = 1、b = 2として与えられ、eは正規分布からのランダム描画である(平均= 0、sd = 1)。これに基づき、私は機能コマンドを使用して関数を作成: function(a, bx, e)Rで関数を作成し、次にyをxに回帰する

と変数として「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(フィット$残余、ブレーク= 30)'。 –

関連する問題