使用从示例中获取的以下代码......我如何获得您在 Excel 等输出中找到的 p 值和 t-stat?
OLSMultipleLinearRegression regression2 = new OLSMultipleLinearRegression();
double[] y = { 4, 8, 13, 18};
double[][] x = {{ 1, 1, 1 },
{ 1, 2, 4 },
{ 1, 3, 9 },
{ 1, 4, 16 }};
regression2.newSampleData(y, x);
regression2.setNoIntercept(true);
double[] beta = regression2.estimateRegressionParameters();
for (double d : beta) {
System.out.println("D: " + d);
}
Run Code Online (Sandbox Code Playgroud)
发布这个问题后,我解决了 t-stat 部分:
for (int i=0; i < beta.length; i++){
double tstat = beta[i] / regression.estimateRegressionParametersStandardErrors()[i];
System.out.println("t-stats(" +i +") : …Run Code Online (Sandbox Code Playgroud) 我正在估计一些空间计量经济学模型,其中包含空间自回归项rho和空间误差项lambda.在尝试传达我的结果时,我使用的是texreg包,它接受我正在使用的sacsarlm模型.然而,我注意到,texreg打印相同的rho和lambda参数的p值.Texreg似乎返回model@LR1$p.value在模型对象的槽中找到的p值.
参数rho和lambda的大小不同,并且具有不同的标准误差,因此它们不应具有等效的p值.如果我在模型对象上调用summary,我会获得唯一的p值,但无法确定这些值在模型对象中的存储位置,尽管它遍历了str(model)调用中的每个元素.
我的问题是双重的:
以下是显示问题的最小示例:
library(spdep)
library(texreg)
set.seed(42)
W.ran <- matrix(rbinom(100*100, 1, .3),nrow=100)
X <- rnorm(100)
Y <- .2 * X + rnorm(100) + .9*(W.ran %*% X)
W.test <- mat2listw(W.ran)
model <- sacsarlm(Y~X, type = "sacmixed",
listw=W.test, zero.policy=TRUE)
summary(model)
Call:sacsarlm(formula = Y ~ X, listw = W.test, type = "sacmixed",
zero.policy = TRUE)
Residuals:
Min 1Q Median 3Q Max
-2.379283 -0.750922 0.036044 0.675951 2.577148
Type: sacmixed
Coefficients: …Run Code Online (Sandbox Code Playgroud) 尽管搜索了两天的相关问题,但我尚未真正找到该问题的答案...
在下面的代码中,我生成了n个正态分布的随机变量,然后将其表示为直方图:
import numpy as np
import matplotlib.pyplot as plt
n = 10000 # number of generated random variables
x = np.random.normal(0,1,n) # generate n random variables
# plot this in a non-normalized histogram:
plt.hist(x, bins='auto', normed=False)
# get the arrays containing the bin counts and the bin edges:
histo, bin_edges = np.histogram(x, bins='auto', normed=False)
number_of_bins = len(bin_edges)-1
Run Code Online (Sandbox Code Playgroud)
之后,找到曲线拟合函数及其参数。它通常使用参数a1和b1进行分布,并使用scale_factor进行缩放,以满足样本未标准化的事实。它确实非常适合直方图:
import scipy as sp
a1, b1 = sp.stats.norm.fit(x)
scaling_factor = n*(x.max()-x.min())/number_of_bins
plt.plot(x_achse,scaling_factor*sp.stats.norm.pdf(x_achse,a1,b1),'b')
Run Code Online (Sandbox Code Playgroud)
在那之后,我想使用卡方检验来测试此函数对直方图的拟合程度。该测试使用这些点的观测值和预期值。为了计算期望值,我首先计算每个bin中间的位置,此信息包含在数组x_middle中。然后,我在每个bin的中间点计算拟合函数的值,从而得到了Expected_value数组:
observed_values = histo
bin_width = bin_edges[1] - …Run Code Online (Sandbox Code Playgroud) 我想从数据集中获取 pvalues。我在使用 pnorm 时没有遇到任何问题,但我现在遇到了。
data(iris)
iris[,-5]<- scale(as.matrix(iris[,-5]))
# K-Means Cluster Analysis
fit <- kmeans(iris[,-5], 5) # 5 cluster solution
# get cluster means
aggregate(iris[,-5],by=list(fit$cluster),FUN=mean)
# append cluster assignment
mydata <- data.frame(iris, fit$cluster)
pval<- pnorm(iris[,-5])
Run Code Online (Sandbox Code Playgroud)
在此之后,我收到“pnorm(q, mean, sd,lower.tail, log.p) 中的错误:数学函数的非数字参数”的消息。
问题是什么?我不明白为什么会这样。
请告诉我。
每次获得这些科学记数法时,如何获得常规 p 值(以小数位表示)?
我尝试了格式选项但仍然得到相同的结果
> format(1.3e-12, width=5)
[1] "1.3e-12"
Run Code Online (Sandbox Code Playgroud) 这篇文章之前已经提出过这样的问题:用条形图表示使用R的统计学差异.但是,他们想知道如何使用ggplot2来做到这一点.我想知道你是如何使用基本包或函数barplot()来做到这一点的.我想要一些如下图所示的内容:
http://i.stack.imgur.com/3I6El.jpg
我目前的代码:
barcenter3<- barplot(newMEANs3$Percent_Viability, names.arg=c("Control", "Cyp28d1", "A3", "A4"), ylab = "Average Emergent", ylim=c(0, 1.1), xlab= "RNAi Line", main = "Trip Nicotine UAS-RNAi Emergents")
segments(barcenter3, newMEANs3$Percent_Viability-newSDs3$Percent_Viability, barcenter3, newMEANs3$Percent_Viability+newSDs3$Percent_Viability, lwd=1);
segments(barcenter3 - 0.1, newMEANs3$Percent_Viability-newSDs3$Percent_Viability, barcenter3 + 0.1, newMEANs3$Percent_Viability-newSDs3$Percent_Viability, lwd=1);
segments(barcenter3 - 0.1, newMEANs3$Percent_Viability+newSDs3$Percent_Viability, barcenter3 + 0.1, newMEANs3$Percent_Viability+newSDs3$Percent_Viability, lwd=1);
dev.off();
Run Code Online (Sandbox Code Playgroud)
我想添加p值比较对比度.
我使用包中的lmer()函数构建了一个混合效果模型lme4。由于lme4某些很好的哲学原因,该包不输出系数的 p 值。但是,我仍然需要在我的出版物中报告 p 值。我知道有多种方法可以使用由创建的模型来计算 p 值lmer(),例如这里。
我的问题是:我想使用包中的tidy()函数提取 p 值broom。在这里,我真的很想坚持,tidy()因为我想维护以下管道:
data_frame %>% group_by(grouping variables) %>% do(tidy(fitted_model))
Run Code Online (Sandbox Code Playgroud)
一种选择是创建一个自定义函数并将其附加到管道中。但是,该broom软件包的手册页(http://rpackages.ianhowson.com/cran/broom/man/lme4_tidiers.html)说:
"p.value P-value computed from t-statistic (may be missing/NA)".
Run Code Online (Sandbox Code Playgroud)
通过这个,我假设一个从 lmer 模型给出的 t 值计算 p 值的函数已经在 broom 中实现了。所以,我不愿意重新发明轮子。
问题是我根本没有得到名为 p.value 的列。我期待一个名为 p.value 的列,其中 NA 作为最坏的情况。
代码:
library(lme4)
library(broom)
lme <- lmer(Reaction ~ Days + (1 + Days | Subject), sleepstudy)
tidy(lme)
tidy(lme, effects = …Run Code Online (Sandbox Code Playgroud) 我有一个包含 32 个变量的数据框“math.numeric”。每行代表一个学生,每个变量都是一个属性。根据最终成绩,学生被分为5组。
数据如下:
head(math.numeric)
school sex age address famsize Pstatus Medu Fedu Mjob Fjob reason ... group
1 1 18 2 1 1 4 4 1 5 1 2
1 1 17 2 1 2 1 1 1 3 1 2
1 1 15 2 2 2 1 1 1 3 3 3
1 1 15 2 1 2 4 2 2 4 2 4
1 1 16 2 1 2 3 3 3 3 2 3
1 2 …Run Code Online (Sandbox Code Playgroud) summary显示p.values的重要性代码.是否有一个R函数将p.value转换为重要性代码?例如:0.02 - > '*'和0.005 - > '**'?
我已经开始使用并喜欢绘制箱线图来表示我的数据。然而,我很难找到一种方法来对比这两个群体。使用Plotly时有没有办法引入数据之间的统计显着性比较?我想创建这样的图表:
其中 * 对应于 p 值 < 0.05,ns(不显着)对应于 p 值 > 0.05。我发现使用scipy.stats.ttest_ind()and stats.ttest_ind_from_stats()one 可以轻松找到两个分布的 p 值。
我在网上没有找到任何相关的帖子,我认为这是一个相当有用的实现,所以任何帮助将不胜感激!