线性回归R中的NA系数
我必须用R进行模拟 基本上,我必须在矩阵nXp中创建一组变量X,其中第一个变量的值为1,另外23个变量的值是从N0,1中随机抽取的。 长度为24的向量beta,前两个值为1,其余为0。 从N0,1中提取的长度为24的向量ε。 然后我创建了一个变量y,它是:y=X%*%beta+epsilon。 然后我选择X的变量,它有maxcorabsXj,y,其中j从3,24开始,我必须运行一个模型y~X1+X2+Xj,并查看结果线性回归R中的NA系数,r,linear-regression,R,Linear Regression,我必须用R进行模拟 基本上,我必须在矩阵nXp中创建一组变量X,其中第一个变量的值为1,另外23个变量的值是从N0,1中随机抽取的。 长度为24的向量beta,前两个值为1,其余为0。 从N0,1中提取的长度为24的向量ε。 然后我创建了一个变量y,它是:y=X%*%beta+epsilon。 然后我选择X的变量,它有maxcorabsXj,y,其中j从3,24开始,我必须运行一个模型y~X1+X2+Xj,并查看结果 > set.seed(123) > > n=25 p=24
> set.seed(123)
>
> n=25 p=24 b=seq(1,1000)
>
> X <- cbind(matrix(1,nrow=25,ncol=1),matrix(rnorm(25*23),nrow=25,
> ncol=23)) beta <- t(t(c(1,1,rep(0,22)))) eps <- t(t(rnorm(25)))
>
> y <- X %*% beta + eps
>
> j<-seq(3,24) m <- which.max(abs(cor(X[,j],y)))
>
> newX <- as.data.frame(cbind(y,X[,1], X[,2], X[,m+2])) anyNA(newX[,2])
> mod <- lm(V1 ~ . , data=newX)
> summary(mod)
Call: lm(formula = V1 ~ ., data = newX)
Residuals:
Min 1Q Median 3Q Max
-1.42575 -0.90957 0.06547 0.38879 2.39707
Coefficients: (1 not defined because of singularities)
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.1235 0.2421 4.641 0.000126 ***
V2 NA NA NA NA
V3 0.6803 0.2775 2.452 0.022612 *
V4 -0.5943 0.3036 -1.957 0.063101 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.085 on 22 degrees of freedom Multiple R-squared: 0.3958,
Adjusted R-squared: 0.3408 F-statistic: 7.205 on 2 and 22 DF, p-value: 0.003919
一切正常,但正如你所看到的V2的估计系数,即变量X1的系数,由1组成,为NA。 我不明白为什么我有NA,结果变量中的值列为数字,没有缺失值
如果有人能帮我理解,谢谢 变量X1仅由1组成,截距也由设计矩阵中的1值列表示。因此,V2效应和截距不能在数学上分开。作为@Roland回答的后续:尝试拟合模型mod变量X1,该变量仅由1组成。截距也由设计矩阵中的一列1值表示。因此,V2效应和截距不能在数学上分开。作为@Roland回答的后续:尝试拟合模型模型