15 votos

¿Cómo calculo si mi regresión lineal tiene una diferencia estadísticamente significativa de una línea teórica conocida?

Tengo algunos datos que se ajuste a lo largo de aproximadamente lineal de la línea:

enter image description here

Cuando hago una regresión lineal de estos valores, puedo obtener una ecuación lineal:

$$y = 0.997x-0.0136$$

En un mundo ideal, la ecuación debe ser $y = x$.

Claramente, mis lineal de los valores son cercanos a ese ideal, pero no exactamente. Mi pregunta es, ¿cómo puedo determinar si este resultado es estadísticamente significativo?

Es el valor de 0.997 significativamente diferente de 1? Es -0.01 significativamente diferentes de 0? O son estadísticamente iguales y puedo concluir que $y=x$ con razonable nivel de confianza?

¿Qué es una buena prueba estadística que puedo utilizar?

Gracias

19voto

Aaron Puntos 36

Este tipo de situación puede ser manejado por un estándar de prueba F para modelos anidados. Ya que quieres poner a prueba tanto de los parámetros en contra de un modelo nulo con unos parámetros fijos, la validez de sus hipótesis son:

$$H_0: \boldsymbol{\beta} = \begin{bmatrix} 0 \\ 1 \end{bmatrix} \quad \quad \quad H_A: \boldsymbol{\beta} \neq \begin{bmatrix} 0 \\ 1 \end{bmatrix} .$$

The F-test involves fitting both models and comparing their residual sum-of-squares, which are:

$$SSE_0 = \sum_{i=1}^n (y_i-x_i)^2 \quad \quad \quad SSE_A = \sum_{i=1}^n (y_i - \hat{\beta}_0 - \hat{\beta}_1 x_i)^2$$

The test statistic is:

$$F \equiv F(\mathbf{y}, \mathbf{x}) = \frac{n-2}{2} \cdot \frac{SSE_0 - SSE_A}{SSE_A}.$$

The corresponding p-value is:

$$p \equiv p(\mathbf{y}, \mathbf{x}) = \int \limits_{F(\mathbf{y}, \mathbf{x}) }^\infty \text{F-Dist}(r | 2, n-2) \ dr.$$


Implementación en R: Supongamos que los datos están en una base de datos-marco denominado DATA con variables denominadas y y x. El F-test se puede realizar manualmente con el siguiente código. En la simulación simulacro de datos que he utilizado, se puede ver que los coeficientes estimados son cercanos a los que en la hipótesis nula, y el valor p de la prueba demuestra que no hay evidencia significativa para demostrar la falsedad de la hipótesis nula de que la verdadera función de regresión es la función identidad.

#Generate mock data (you can substitute your data if you prefer)
set.seed(12345);
n    <- 1000;
x    <- rnorm(n, mean = 0, sd = 5);
e    <- rnorm(n, mean = 0, sd = 2/sqrt(1+abs(x)));
y    <- x + e;
DATA <- data.frame(y = y, x = x);

#Fit initial regression model
MODEL <- lm(y ~ x, data = DATA);

#Calculate test statistic
SSE0   <- sum((DATA

El $y-DATA$ de salida y x)^2); SSEA <- sum(MODEL$residuals^2); F_STAT <- ((n-2)/2)*((SSE0 - SSEA)/SSEA); P_VAL <- pf(q = F_STAT, df1 = 2, df2 = n-2, lower.tail = FALSE); #Plot the data and show test outcome plot(DATA para este tipo de datos este aspecto:

$x, DATA$

enter image description here

6voto

Brent Hutto Puntos 18

Aquí es un lugar fresco método gráfico que me cribbed de Julian Lejana del excelente libro "Modelos Lineales Con R (Segunda Edición)". Es simultánea 95% de intervalos de confianza para el intercepto y la pendiente, se representa como una elipse.

A modo de ilustración, he creado 500 observaciones con una variable "x" tenga N(media=10,sd=5) la distribución y, a continuación, una variable "y", cuya distribución que es N(media=x,sd=2). Que se obtiene una correlación de un poco más de 0.9, que puede no ser tan firme como sus datos.

Usted puede comprobar la elipse para ver si el punto (intercept=0,la pendiente=1) caen dentro o fuera de ese simultánea intervalo de confianza.

library(tidyverse)
library(ellipse)
#> 
#> Attaching package: 'ellipse'
#> The following object is masked from 'package:graphics':
#> 
#>     pairs

set.seed(50)
dat <- data.frame(x=rnorm(500,10,5)) %>% mutate(y=rnorm(n(),x,2))

lmod1 <- lm(y~x,data=dat)
summary(lmod1)
#> 
#> Call:
#> lm(formula = y ~ x, data = dat)
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#> -6.9652 -1.1796 -0.0576  1.2802  6.0212 
#> 
#> Coefficients:
#>             Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)  0.24171    0.20074   1.204    0.229    
#> x            0.97753    0.01802  54.246   <2e-16 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 2.057 on 498 degrees of freedom
#> Multiple R-squared:  0.8553, Adjusted R-squared:  0.855 
#> F-statistic:  2943 on 1 and 498 DF,  p-value: < 2.2e-16

cor(dat

$y,dat$

Creado en 2019-01-21 por el reprex paquete (v0.2.1)

1voto

Peter Dieter Puntos 53

Podrías calcular los coeficientes con n muestras bootstrapped. Esto probablemente dará como resultado valores de coeficientes distribuidos normales (Teorema del límite central). Con eso, entonces podría construir un intervalo de confianza (por ejemplo, 95%) con valores t (n-1 grados de libertad) alrededor de la media. Si su IC no incluye 1 (0), es estadísticamente significativo diferente o más preciso: puede rechazar la hipótesis nula de una pendiente igual.

0voto

Harti Puntos 82

Podrías realizar una prueba simple de hipótesis, a saber, una prueba t. Para la intercepción, su hipótesis nula es $\beta_0=0$ (tenga en cuenta que esta es la prueba de significación), y para la pendiente la tiene bajo H0 $\beta_1=1$ .

0voto

Semoi Puntos 133

Debe ajustar una regresión lineal y verificar los intervalos de confianza del 95% para los dos parámetros. Si el IC de la pendiente incluye 1 y el CI del desplazamiento incluye 0, la prueba de dos lados es insignificante aprox. en el nivel (95%) ^ 2: como usamos dos pruebas separadas, el riesgo de typ-I aumenta.

Utilizando R:

 fit = lm(Y ~ X)
confint(fit)
 

o usas

 summary(fit)
 

y calcule los 2 intervalos sigma por usted mismo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X