我有一个简单的问题.我已经在R中看到了t检验和相关性的这种行为.
我做了一个简单的配对t检验(在这种情况下,两个长度为100的向量).所以配对t检验的df应该是99.但是这不是t检验结果输出中出现的.
dataforTtest.x <- rnorm(100,3,1)
dataforTtest.y <- rnorm(100,1,1)
t.test(dataforTtest.x, dataforTtest.y,paired=TRUE)
Run Code Online (Sandbox Code Playgroud)
这个输出是:
Paired t-test
data: dataforTtest.x and dataforTtest.y
t = 10, df = 100, p-value <2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
1.6 2.1
sample estimates:
mean of the differences
1.8
Run Code Online (Sandbox Code Playgroud)
但是,如果我实际查看结果对象,则df是正确的.
> t.test(dataforTtest.x, dataforTtest.y,paired=TRUE)[["parameter"]]
df
99
Run Code Online (Sandbox Code Playgroud)
我错过了一些非常愚蠢的东西吗?我正在运行R版本3.3.0(2016-05-03)
给出一个值列表:
>>> from scipy import stats
>>> import numpy as np
>>> x = list(range(100))
Run Code Online (Sandbox Code Playgroud)
使用学生t检验,我可以找到分布的置信区间,其平均值为0.1(即置信度为90%):
def confidence_interval(alist, v, itv):
return stats.t.interval(itv, df=len(alist)-1, loc=v, scale=stats.sem(alist))
x = list(range(100))
confidence_interval(x, np.mean(x), 0.1)
Run Code Online (Sandbox Code Playgroud)
[OUT]:
(49.134501289005009, 49.865498710994991)
Run Code Online (Sandbox Code Playgroud)
但是,如果我要在每个数据点找到置信区间,例如10:
>>> confidence_interval(x, 10, 0.1)
(9.6345012890050086, 10.365498710994991)
Run Code Online (Sandbox Code Playgroud)
如何解释值的区间?在统计上/数学上听起来完全可以理解吗?
它是否类似于:
置信度为90%,我们知道数据点
10落在区间内(9.6345012890050086, 10.365498710994991),
又名.
置信度为90%,我们可以说数据点下降到10 + - 0.365 ......
那么我们可以将区间解释为某种类型的数据点盒形图吗?
我对具有相同自变量的两组进行回归。然后,我想测试两个回归的斜率是否显着不同。
我读到,当两组之间的样本量和方差不相等时,建议进行韦尔奇 t 检验。我发现了这个t.test()功能,但是我没有在斜坡上应用它。
Data <- data.frame(
gender = sample (c("men", "women"), 2000, replace = TRUE),
var1 = sample (c("value1", "value2"), 2000, replace = TRUE),
var2 = sample (c("valueA", "valueB"), 2000, replace = TRUE),
var3 = sample (c("valueY", "valueZ"), 2000, replace = TRUE),
y = sample(0:10, 2000, replace = TRUE)
)
Run Code Online (Sandbox Code Playgroud)
我的两个回归:
lm.male <- lm(y ~ var1 + var2 + var3, data = subset(Data, gender == "men"))
summary(lm.male)
lm.women <- lm(y ~ var1 + var2 + var3, data …Run Code Online (Sandbox Code Playgroud) 我坚持在Rstudio中为多个类别执行t.tests.我希望得到每种产品类型的t.test的结果,比较在线和离线价格.我有800多种产品类型,因此不希望为每个产品组手动执行此操作.
我有一个数据帧(超过200万行)命名数据,如下所示:
> Product_type Price_Online Price_Offline
1 A 48 37
2 B 29 22
3 B 32 40
4 A 38 36
5 C 32 27
6 C 31 35
7 C 28 24
8 A 47 42
9 C 40 36
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望R将t.test的结果写入另一个名为product_types的数据框:
> Product_type
1 A
2 B
3 C
4 D
5 E
6 F
7 G
8 H
9 I
800 ...
Run Code Online (Sandbox Code Playgroud)
变为:
> Product_type t df p-value interval mean of difference
1 A
2 B
3 …Run Code Online (Sandbox Code Playgroud) 这怎么能在python中完成?
注意: 我完全困惑:(python 为(统计)幂函数计算提供的函数。
有人可以帮我在这里下订单吗?
statsmodels下有两个函数:
from statsmodels.stats.power import ttest_power, tt_ind_solve_power()
Run Code Online (Sandbox Code Playgroud)
我们有:
tt_ind_solve_power(effect_size=effect_size, alpha=alpha, power=0.8, ratio=1, alternative='two-sided')
Run Code Online (Sandbox Code Playgroud)
我们还有:
ttest_power(0.2, nobs=sampleSize, alpha=alpha, alternative='two-sided')
Run Code Online (Sandbox Code Playgroud)
还有这样一段代码:
import statsmodels.stats.api as sms
es = sms.proportion_effectsize(prop1, prop2, method='normal')
n = sms.NormalIndPower().solve_power(es, power=0.9, alpha=0.05, ratio=2)
Run Code Online (Sandbox Code Playgroud)
我在某处找到了这个例子,但它没有解释什么是 prop1 和 prop2!
每一个都给了我不同的价值观。
谢谢
我正在 Python 中运行加权 t 测试,但看到了不同的结果。看来问题是自由度计算。想了解为什么我看到不同的输出。
这是一些示例代码。
在 R 中:
library(weights)
x <- c(373,398,245,272,238,241,134,410,158,125,198,252,577,272,208,260)
y <- c(411,471,320,364,311,390,163,424,228,144,246,371,680,384,279,303)
weightsa = c(rep(1,8), rep(2,8))
weightsb = c(rep(2,8), rep(1,8))
wtd.t.test(x = x,
y = y,
weight = weightsa,
weighty = weightsb, samedata=F)
$test [1] "Two Sample Weighted T-Test (Welch)"
$coefficients
t.value df p.value
-1.88907197 29.93637837 0.06860382
$additional Difference Mean.x Mean.y Std. Err -80.50000
267.12500 347.62500 42.61352
Run Code Online (Sandbox Code Playgroud)
在 Python 中:
import numpy as np
from statsmodels.stats.weightstats import ttest_ind
x = np.asarray([373,398,245,272,238,241,134,410,158,125,198,252,577,272,208,260])
y = np.asarray([411,471,320,364,311,390,163,424,228,144,246,371,680,384,279,303])
weightsa = …Run Code Online (Sandbox Code Playgroud) 我偶然发现了一个恼人的问题。我正在尝试一次执行多个独立样本 t 检验,并按值分组。
举个例子:我们在5个城市测量了男性和女性的工作满意度。对于每个主题,我们都知道他们的城市、性别和满意度得分。我们可以像这样对整个样本进行 t 检验:
t.test(Score ~ Gender, paired = FALSE)
Run Code Online (Sandbox Code Playgroud)
但是,我想对每个城市进行 t 检验,看看每个城市每个性别的平均工作满意度是否存在差异。我该怎么做呢?
我有两个dataframes,我希望做就行独立的2组的t检验(即t.test(y1, y2),其中y1是在dataframe1行和y2被匹配dataframe2行)
什么是实现这一目标的最佳方式?
编辑:我刚刚找到格式:dataframe1 [i,] dataframe2 [i,].这将循环工作.这是最好的解决方案吗?
我有一组数据x,由 12 列和 167 行组成。第一列是每行的复合 ID。我想t.test将 3 列作为一组运行,将其他 3 组作为第二组运行,每行分别运行。我的代码如下,但它不起作用。
for (i in 1:nrow(x)) {
function(i)c(compound=i,
t.test(x[2:4],x[8:10],
x[x$compound==i, ],
alternative='two.sided',conf.level=0.95)
)
}
print(c(compound=i,t.test(x[2:4],x[8:10],x[x$compound==i,],
alternative='two.sided',conf.level=0.95)))
Run Code Online (Sandbox Code Playgroud)
我的目的是t.test对 AC 组和 SC 组之间的每种代谢物(化合物)进行分析,这是两组细胞。
compound AC-1 AC-2 AC-3 AM-1 AM-2 AM-3 SC-1 SC-2 SC-3 SM-1 SM-2 SM-3
alanine 27612820 22338050 15359640 19741350 18726880 18510800 10914980 12071660 16036180 16890860 16066960 16364300
arginine 7067206 7172234 5933320 136272600 131596800 134717600 6102838 7186256 6770344 140127100 155341300 151748000
asparagine 3151398 2141378 1240904 11522180 8907711 …Run Code Online (Sandbox Code Playgroud) 我有两个不同大小的 numpy 数组,我想直接在 python 中运行 t 测试来查看 p 值。
我正在尝试进行两个样本的t检验,以了解治疗组和对照组之间的差异。数据未配对。当我对原始数据帧进行子集处理时,我发现样本大小不相等(不是一个手工问题,但是R似乎使它成为问题)。这是我的代码:
CG<-subset(data,treat=="Control")
TG<-subset(data,treat!="Control")
agep <-t.test(CG$age~TG$age)$p.value
Run Code Online (Sandbox Code Playgroud)
我得到的错误如下:
Error in model.frame.default(formula = CG$age ~ TG$age) :
variable lengths differ (found for 'TG$age')
Run Code Online (Sandbox Code Playgroud)
是! 长度确实不同。如果我没有进行配对测试,不确定为什么会出问题吗?在此先感谢您的帮助。
t-test ×11
r ×8
statistics ×6
python ×4
dataframe ×2
numpy ×1
p-value ×1
regression ×1
rounding ×1
sample-size ×1
scipy ×1