Re: Calcular un valor p en un scriptHay un par de cosas aquí:
- El script está calculando el valor p basado en el crítico valor t (calculado en la primera línea) en lugar del observado valor t. Este último es la diferencia de medias dividida por el error estándar de la diferencia.
- La llamada t Distribution() está calculando la proporción de la distribución menor que el valor t, que no es exactamente el valor p que está buscando. Calcular el valor p de dos colas requiere un poco de aritmética simple de aquí (ver ejemplo).
Si podemos suponer que la tabla de datos tiene como mínimo los tamaños de muestra por grupo, las medias y las desviaciones estándar en sus propias columnas, aquí hay algunos JSL que harán lo que usted quiere. Pruébelo en la tabla de ejemplo adjunta. Tenga en cuenta que he incluido un paso intermedio para calcular una columna de desviación estándar agrupada para mejorar la legibilidad de la fórmula para la columna de valor t.
Names Default to Here( 1 );
dt = Data Table( "Example.jmp" );
dt << New Column( "Pooled stdev",
Numeric,
Continuous,
Format( "Fixed Dec", 15, 3 ),
Formula(
Sqrt( ((:Group A n - 1) * :Group A stdev ^ 2 + (:Group B n - 1) * :Group B stdev ^ 2) / (:Group A n + :Group B n - 2) )
)
);
dt << New Column( " t-Value",
Numeric,
Continuous,
Format( "Fixed Dec", 15, 3),
Formula(
(:Group A mean - :Group B mean) / (:Pooled stdev * Sqrt( 1 / :Group A n + 1 / :Group B n) )
)
);
dt << New Column( "p-Value",
Numeric,
Continuous,
Format( "Fixed Dec", 15, 3 ),
Formula(
( 1 - t Distribution( Abs( :"t-Value"n ), :Group A n + :Group B n - 2 ) ) * 2
)
);
Re: Calcular un valor p en un scriptHola Ross,
Gracias por su respuesta, ¿cómo se ve esto?
dt5 << New Column( "Difference in Mean", Numeric, Continuous, Format( "Fixed Dec", 15, 3 ), Formula( :"Mean(Data) VPP"n - :"Mean(Data) Commercial"n ) );
dt5 << New Column( "Pooled Std Dev", Numeric, Continuous, Format( "Fixed Dec", 15, 3 ), Formula( sqrt(((:"N(Data) VPP"n - 1)* :"Std Dev(Data) VPP"n ^ 2 + (:"N(Data) Commercial"n - 1) * :"Std Dev(Data) Commercial"n ^ 2 ) / (:"N(Data) VPP"n + :"N(Data) Commercial"n - 2)))) ;
dt5 << New Column( "Lower 90% Confidence Interval", Numeric, Continuous, Format( "Fixed Dec", 15, 3 ), Formula( (:"Mean(Data) VPP"n - :"Mean(Data) Commercial"n ) - t Quantile (0.95,:"N(Data) VPP"n + :"N(Data) Commercial"n -2) * (:Pooled Std Dev * sqrt(( 1/:"N(Data) VPP"n) + (1/:"N(Data) Commercial"n )) )));
dt5 << New Column( "Upper 90% Confidence Interval", Numeric, Continuous, Format( "Fixed Dec", 15, 3), Formula( (:"Mean(Data) VPP"n - :"Mean(Data) Commercial"n ) + t Quantile (0.95,:"N(Data) VPP"n + :"N(Data) Commercial"n -2) * (:Pooled Std Dev * sqrt(( 1/:"N(Data) VPP"n) + (1/:"N(Data) Commercial"n )) )));
dt5 << New Column( "Pooled Variance", Numeric, Continuous, Format( "Fixed Dec", 15, 3), Formula(:Pooled Std Dev ^ 2));
dt5 << New Column(" Std Error for t-Value", Numeric, Continuous, Format( "Fixed Dec", 15, 3), Formula(sqrt (:Pooled Variance * ( 1/:"N(Data) VPP"n + 1/ :"N(Data) Commercial"n ) )));
dt5 << New Column(" t-stat", Numeric, Continuous, Format( "Fixed Dec", 15, 3), Formula((Abs (:"Mean(Data) VPP"n - :"Mean(Data) Commercial"n - 0)) / :"Std Error for t-Value"n));
dt5 << New Column( "one tail p-Value", Numeric, Continuous, Format( "Fixed Dec", 15, 4), Formula(1 - t Distribution (:"t-stat"n,:"N(Data) VPP"n + :"N(Data) Commercial"n - 2 )));
dt5 << New Column( "two tail p-value", Numeric, Continuous, Format( "Fixed Dec", 12, 4 ),Formula( :"one tail p-Value"n * 2 ));
Re: Calcular un valor p en un scriptNo he analizado cada ecuación con todo detalle, así que definitivamente verifique todo usted mismo. Pero dicho esto, solo capté una cosa que probablemente querrá cambiar: la fórmula para la estadística t toma el valor absoluto de la diferencia de medias, lo que significa que su estadística t siempre será positiva cuando debería ser negativo cada vez que la media de VPP sea inferior a la media comercial. Usé la función Abs() en mi ejemplo solo para asegurar que el valor p se calcularía correctamente independientemente del signo de la estadística t. Probablemente querrás hacer lo mismo.
Re: Calcular un valor p en un scriptGracias de nuevo Ross, muy apreciado.
Re: Calcular un valor p en un scriptGracias por la solución.
Calcular un valor p en un scriptHola a todos,
Sé que estoy haciendo algo mal aquí, pero no puedo verlo en este momento. Quiero el valor p de dos colas para una diferencia de dos medias y estoy usando el siguiente script
dt5 << New Column(" t-Value", Numeric, Continuous, Format( "Fixed Dec", 15, 3), Formula( t Quantile (0.95,:"N(Data) VPP"n + :"N(Data) Commercial"n -2)));
dt5 << New Column( "p-Value", Numeric, Continuous, Format( "Fixed Dec", 15, 3), Formula( t Distribution (:"T-Value"n,:"N(Data) VPP"n + :"N(Data) Commercial"n - 1 )));¿Alguien puede ofrecer algún consejo?
Gracias,
Mick.
Automatización y secuencias de comandosInvestigación de Consumidores y MercadosRe: Calcular un valor p en un scriptNo es necesario tomar el valor absoluto de la diferencia de medias al calcular el estadístico t. El valor absoluto no se utiliza en los cálculos de la prueba t estándar porque perdería información sobre la dirección de la diferencia, lo cual es importante para la interpretación de los resultados. Si la media del primer grupo es menor que la media del segundo grupo, el estadístico t naturalmente será negativo, y esto se refleja correctamente en el cálculo sin utilizar el valor absoluto.